OkHttp框架使用问题,菜鸟急求啊 10C

这是我的OkHttp框架 但不知道怎么在MainActivity里面用 我随便用了 但好像提交不了数据 求大神指定啊,本人是名菜鸟
public class OkHttpUtil {
private static final String TAG = "OkHttpUtil";
private static OkHttpUtil mInstance;
private OkHttpClient mOkHttpClient;
private Handler mDelivery;
private OkHttpUtil() {
mOkHttpClient = new OkHttpClient();
mDelivery = new Handler(Looper.getMainLooper());
}
private synchronized static OkHttpUtil getmInstance() {
if (mInstance == null) {
mInstance = new OkHttpUtil();
}
return mInstance;
}
private void getRequest(String url, final ResultCallback callback) {
final Request request = new Request.Builder().url(url).build();
deliveryResult(callback, request);
}
private void postRequest(String url, final ResultCallback callback, List params) {
Request request = buildPostRequest(url, params);
deliveryResult(callback, request);
}
private void deliveryResult(final ResultCallback callback, Request request) {
mOkHttpClient.newCall(request).enqueue(new Callback() {

        @Override
        public void onFailure(Call call, IOException e) {
            sendFailCallback(callback, e);
        }

        @Override
        public void onResponse(Call call, Response response) throws IOException {
            try {
                String str = response.body().string();
                sendSuccessCallBack(callback, str);
            } catch (final Exception e) {
                Log.e(TAG, e.toString());
                sendFailCallback(callback, e);
            }
        }
    });
}
private void sendFailCallback(final ResultCallback callback, final Exception e) {
    mDelivery.post(new Runnable() {
        @Override
        public void run() {
            if (callback != null) {
                callback.onFailure(e);
            }
        }
    });
}
private void sendSuccessCallBack(final ResultCallback callback, final Object obj) {
    mDelivery.post(new Runnable() {
        @Override
        public void run() {
            if (callback != null) {
                callback.onSuccess(obj);
            }
        }
    });
}
private Request buildPostRequest(String url, List<Param> params) {
    FormBody.Builder builder = new FormBody.Builder();
    for (Param param : params) {
        builder.add(param.key, param.value);
    }
    RequestBody requestBody = builder.build();
    return new Request.Builder().url(url).post(requestBody).build();        
}
 private void postImageRequest(String url, ResultCallback callback, List<Param> params) {
    Request request = buildPostImageRequest(url, params);
    deliveryResult(callback, request);
}
private Request buildPostImageRequest(String url, List<Param> params) {
    if(params == null || params.size()==0){
        throw new RuntimeException("上传图片路径为null");
    }
    MultipartBody.Builder builder = new MultipartBody.Builder().setType(MultipartBody.FORM);
    for (Param param : params) {
        File file = new File(param.value);
        if(file.exists()){
            builder.addFormDataPart(param.key, file.getName(),
                    RequestBody.create(MediaType.parse("image/*"), file));
        }
    }
    RequestBody requestBody = builder.build();
    return new Request.Builder().url(url).post(requestBody).build();
}

/**********************对外接口************************/
/**
 * get请求
 * @param url  请求url
 * @param callback  请求回调
 */
public static void get(String url, ResultCallback callback) {
    getmInstance().getRequest(url, callback);
}
/**
 * post请求
 * @param url       请求url
 * @param callback  请求回调
 * @param params    请求参数
 */
public static String post(String url, final ResultCallback callback, List<Param> params) {
    getmInstance().postRequest(url,callback,params);
    return url;
}
/**
 * post请求, 图片上传
 * @param url       请求url
 * @param callback  请求回调
 * @param params    请求参数
 */
public static void uploadImage(String url, final ResultCallback callback, List<Param> params) {
    getmInstance().postImageRequest(url, callback, params);
}

/**
 * http请求回调类,回调方法在UI线程中执行
 * @param <T>
 */
public static abstract class ResultCallback<T> {

    /**
     * 请求成功回调
     * @param response
     */
    public abstract void onSuccess(T response);
    /**
     * 请求失败回调
     * @param e
     */
    public abstract void onFailure(Exception e);
}
/**
 * post请求参数类
 */
public static class Param {
    String key;
    String value;
    public Param(String key, String value) {
        this.key = key;
        this.value = value;
    }
}

}
这是我的MainActivity
public class MainActivity extends AppCompatActivity {

private Button btn;
private static String PATH = "http://192.168.31.177:8081"; // 服务端地址
private static URL url;

// private HttpUtils httpUtils;
private OkHttpUtil okHttpUtil;
private OkHttpUtil.ResultCallback resultCallback;

public MainActivity(OkHttpUtil.ResultCallback resultCallback) {
    this.resultCallback = resultCallback;
}

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    initView();
}

public void initView(){
    btn = (Button) findViewById(R.id.post_btn);
    btn.setOnClickListener(new View.OnClickListener(){
        @Override
        public void onClick(View view) {
            strSendPost();
        }
    });
}
public void strSendPost(){

// Map map = new HashMap();
List list = new ArrayList<>();
// params.put("shopId","371");
// params.put("advertA map.put("mode","iisue");
// map.put("call","shopService.qryAdvertList");
// map.put("params","{\"advertAreaId\":\"1\",\"shopId\":\"371\"}\n");
// map.put("version","1.0.0");reaId","1")
//
String result =okHttpUtil.post(PATH, resultCallback,list);
System.out.println("--->>" + result);
}
}

0

3个回答

。。。。debug调试吧,这么多代码懒得看

0

你确定服务端支持一次性上传多个图片文件??
你先上传一个文件试试看

0

我有demo,你想要吗?

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
javabean求解旧错
javabean+jsp问题,求纠错。急/
java代码啊
很值得学习的java代码!求积分啊,急急急
Okhttp网络框架的基本使用及源码解析
Okhttp网络框架的学习及源码分析 HTTP及相关协议 HTTP协议 出现及发展 1960年美国人Ted Nelson提出想法 由万维网协会(www)和互联网工程工作共同研究 目前使用最广泛的是HTTP1.1 HTTP协议结构 HTTP协议的结构有四个主要组成部分: 请求头 表明本次请求的客户端 本次请求所使用的cookie(标明本次请求的用户身份) 本次请求希望返回的数据类型(json...
android okGO、okHttp、XUtils网络框架使用
android okGO、okHttp、XUtils网络框架使用
Okhttp的使用教程
转载地址:http://m.2cto.com/net/201605/505364.html 最近半年来身边开发的朋友越来越多的提到OkHttp,上谷歌百度一下,确实OkHttp成了时下最火的HTTP框架,于是我也开始放下Volley,转而关注OkHttp,五一期间仔细看了官方WiKi介绍(我喜欢学习官方的文档),现在把自己整理的官方教程分享给大家,希望给初学者带来帮助。  OkHttp
《数据结构》第一章&第二章知识结构导图
还不怎么习惯去使用这个
OKHTTP3源码和设计模式(下篇)
  在《OKHTTP3源码和设计模式(上篇)》,中整体介绍了 OKHttp3 的源码架构,重点讲解了请求任务的分发管理和线程池以及请求执行过程中的拦截器。这一章我们接着往下走认识一下 OKHttp3 底层连接和连接池工作机制。 RealCall 封装了请求过程, 组织了用户和内置拦截器,其中内置拦截器 retryAndFollowUpInterceptor -&amp;gt; BridgeInte...
Okhttp3菜鸟必入
为啥要学Okhttp3呢,因为Retrofit中用到了,而且它本身也是一个网络框架,不与Retrofit一起用还可以单独用,一石二鸟为啥不学呢。这个相对也比较简单。一、添加依赖 //Okhttp3,后面的那个依赖如果不添加,有说链接不上数据库的,所以还是加上吧,我没添加没啥问题,保险起见 compile 'com.squareup.okhttp3:okhttp:3.3.0' c
OkHttp网络框架的使用整理
最近的项目中,使用了OkHttp网络框架来上传数据。正好自己在网络这一块还不太熟,借此机会来整理总结一下。 一、什么是OkHttp OkHttp是一个高效的HTTP客户端,通过它可以轻松地实现HTTP请求的发送。它有一些优点,但是具体是什么原理使它拥有这些优点,还需要后续对源码进行分析。 二、使用方法 1、GET请求 OkHttp的请求,是围绕着OkHttpClient来进行的。一个请求...
OKHTTP3源码和设计模式(上篇)
本文来探究一下 OkHttp3 的源码和其中的设计思想。 关于 OkHttp3 的源码分析的文章挺多,不过大多还是在为了源码而源码。个人觉得如果读源码不去分析源码背后的设计模式或设计思想,那么读源码的意义不大。 同时,如果熟悉的设计模式越多,那么读某个框架的源码的时候就越容易,两者是相辅相成的,这也是许多大牛认为多读源码能提高编程能力的原因。 整体架构 为了方面后面的理解,我这里简单画了...
xml 查询问题
xml 查询问题 急xml 查询问题 急xml 查询问题 急xml 查询问题 急xml 查询问题 急xml 查询问题 急xml 查询问题 急xml 查询问题 急xml 查询问题 急xml 查询问题 急xml 查询问题 急xml 查询问题 急xml 查询问题 急xml 查询问题 急xml 查询问题 急
java 技术 问题 分页
java 技术 问题 分页 教急啊士大夫了
OkHttp使用实例
OkHttp使用实例依赖OkHttp包compile 'com.squareup.okhttp3:okhttp:3.6.0'OkHttp依赖包compile 'com.squareup.okio:okio:1.11.0'json处理包compile 'com.google.code.gson:gson:2.8.0'图示具体例子【封装的两个类,可以直接调用】get方式为例【重在理解原理】import...
Okhttp源码简单解析(一)
Okhttp源码解析:简单流程的梳理
Retrofit和okhttp的了解和使用
张鸿祥博客http://blog.csdn.net/lmj623565791/article/details/51304204 okhttp工具类 https://github.com/hongyangAndroid/okhttp-utils
数据结构算法题/有向图的最短路径问题Dijkstra
Dijkstra从一个顶点到其余各顶点的最短路径算法,解决的是有向图中最短路径问题 时间复杂度o(n^2) 用Dijkstra算法找出以A为起点的单源最短路径步骤如下,从最短路径开始找,而不是当前路径开始找。 https://www.cnblogs.com/kex1n/p/4178782.html...
convert类
急啊!!!
12种最精彩的演讲开场白,让你快速征服听众(四)
图片来自网络 7、夸大式如果你想迅速吸引住全场的听众,那你的开场白必须语出惊人。比如,有声有色地描绘了一个异乎寻常的场景,不动声色地列举出一些令人触目惊心的数据,或者栩栩如生地描述了一个耸人听闻的问题。因为只有这样,全场听众才会聚精会神地听你演讲,才会侧耳倾听,力求理解你叙述的主旨,探询你演讲的原因。上面所说的开场白方式叫夸大式,有时也叫“语出惊...
6.61PGGVS78录像
接个电话急啊各地 阿是大环境 阿是大富豪急啊的
Android网络请求框架使用 -- OkHttp
一、在build.gradle中引入OkHttp依赖 那么我们怎么引入呢,相信对于Android的新手来说可能不知道如何找到依赖包的正确版本。分享一下我是如何正确的找到版本并引入的。 1、打开Github,在输入框中输入OkHttp然后回车,点开第一个。在后面的使用介绍当中就可以看到gradle的正确版本了,如果以后有使用其他的开源框架也可以使用同样的方式查看正确的版本。
用authorware制作电子时钟
供急求authorware作品的人参考!
OKhttp网络获取框架使用
1.获取网络权限 2.主函数 public class MainActivity extends AppCompatActivity { private ImageView iv; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate
okHttp开发框架使用
OkHttp : 支持SPDY, 可以合并多个到同一个主机的请求 使用连接池技术减少请求的延迟(如果SPDY是可用的话) 使用GZIP压缩减少传输的数据量 缓存响应避免重复的网络请求 okhttp的简单使用,主要包含: 一般的get请求 一般的post请求 基于Http的文件上传 文件下载 加载图片 支持请求回调,直接返回对象、对象集合 支持session的保持 使用
Okhttp 框架使用和源码分析
Okhttp源码的大致流程,和使用的细节。
加密后文件不能恢复的解决方法:找回失落的加密文件(图文并茂)
有些朋友在试用了加密软件后,往往在卸载和共享试用到期前忘记了解密已经加密的文件夹,致使有些重要数据被加密而无法恢复,此文将告诉你找回这些失落的加密文件,当你和你身边的朋友碰到此类问题时,不妨试试这些方法。 今天,单位一同事满头大汗地跑来找笔者帮忙,一问才知道,原来前些天他用一个叫“E-神加密文件夹”的文件夹隐藏工具加密了几个保存着重要文档的文件夹。而这个软件如果不注册只能用30次,现在试用...
关于单选框、复选框的处理(菜鸟篇)
下面即将介绍的是关于单选框提交时的处理手法,特别是在只用一个单选框时,我们会把它转换成复选框类型至于原因下面就来说明: (初学者必看)     New Document          -->      hello       格式1: 格式2: 在选中的情况下request中对应的url栏中为(采
Web作业设计1.1
HTML形式 简单 菜鸟级 改天重新描述。急
java web 图书管理系统
比较好的学习项目,实现图书管理系统相关功能
Java Web 图书管理系统
java web图书管理系统。JSP课程设计论文。Java web图书管理系统论文。
eclipse版okhttp
eclipse版okhttp解决只导入okhttp报错的问题,包含okhttp,oki 等两个必要的jar文件
mdmcpq.in文件
急求XP系统中mdmcpq.inf和usbser.sys文件,解决套件无连接!
菜鸟急求!救命啊!!!
请问那位大虾知道如何创建并使用INI文件,比如要实现FTP定时上传文件,将任意输入的时间写进INI文件,然后通过获取系统时间,将获取的系统时间与INI文件中的时间进行比较,为真则进行上传操作。rn小弟初次接触INI文件的使用,所以只是这么设想,不知道具体是不是这样,如有高手熟悉的话,请尽快告诉我!30分奖给你,好的话再加分,急急急急!!!rn
okhttp 问题总结
前言: 今日付出的汗水,只为明日不一样的自己。唯有坚持不懈的努力,才能过上自己想要的生活 转载请标明出处: http://blog.csdn.net/w690333243/article/details/78609258 更多内容请访问【-小沫-专栏】 一、如果想要打印okhttp的log 则logging-interceptor版本要和okhttp版本保
菜鸟Android开发起步遇到的小问题————OKHttp回调时请求后出现的问题
本人在校大三学生,在自学Android,在这里吧学习中遇到的一系列小问题写到这里,希望可以得到答案的同时,也可以给遇到相同问题的各位一个参考。 String up = "username="+""+username+"&password="+""+password; HttpUtil.SendHttpRequestByOK("http://59.75.83.133:8080/Register
Hibernate懒加载急加载我们需要注意的问题
1、显而易见的概念懒加载——也被称为延迟加载,它在查询的时候不会立刻访问数据库,而是返回代理对象,当真正去使用对象的时候才会访问数据库。急加载——就是只要我们实体做了关联,全部一次性执行完所有的SQL语句2、@OneToMany ****默认为懒加载**** @Test public void find(){ Session s= sessionFactory.
C语言解决大数的阶层问题
著作权归作者所有。 商业转载请联系作者获得授权,非商业转载请注明出处。 作者:张刚 链接:http://www.zhihu.com/question/23490167/answer/24743241 来源:知乎#include<stdio.h> const int max=3000; int f[max]={0};//初始化数组,也可以用memset(f,0,sizeof(f));来实现,需要用到#
Retrofit+okhttp网络框架介绍
网络框架选择过程目前Github上使用比较多的Android Http库依次是Retrofit,okhttp,android-async-http,okhttp-utils,async-http-client,等等; 中间经过一系列的分析,根据start,更新速度,作者,库的实用性,性能,以及拓展性等等,最终选出了3个PK.(Retrofit,okhttp,okhttp-utils) 其中Ret
菜鸟问题----急啊!!
asp本来用得是Access数据库,现在要转换成sql server数据库rn小弟从来没搞过sql serverrnsql数据库里面新建1个数据库里面怎么有好几十个默认得表存在?那些是干什么用得?rn如果asp移植到另外得机器上,那台机器是不是得装个sql server,还是只装个sql server引擎?rnrn
菜鸟问题,急啊!!
我有一个页面AAA.aspx,里面有一个显示子页面的超链接。我点击了这个超链接后显示bbb.aspx页面,当我对bbb.aspx里的数据操作以后关闭此页面。但在关闭此页面后,我要让父页面AAA.aspx自动刷新一下该怎么写这段javascript脚本啊???rn请指教!!!!
菜鸟问题>?????急啊
<%rn dim conn rn dim connstrrn on error resume nextrn connstr="DRIVER=SQL Server;server=127.0.0.1;uid=sa;pwd=;database=MYWEB"rn set conn=server.createobject("ADODB.CONNECTION")rn if err then rn response.write("数据库连接错误!")rn response.End()rn elsern conn.open connstr rn if err then rn response.write("打开数据库错误!")rn err.clearrn end ifrn end ifrnrnsqlstr = "select * from tbl_User"rnset rs=server.createobject("adodb.recordset")rnset rs = conn.execute(sqlstr)rn或'rs.open sqlstr,connrn或'rs.open sqlstr,conn,1,1rnrnif rs = nothing thenrn response.write("误!")rn response.End()rnend ifrn%>rn为什么输出结果老是 "误!"rn我的表里面有数据啊.rnrn
文章热词 设计制作学习 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 菜鸟学python 大数据技术菜鸟教程