okhttp的使用

Posted 菜鸟_阿亮

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了okhttp的使用相关的知识,希望对你有一定的参考价值。

1.添加依赖:

compile ‘com.squareup.okhttp:okhttp:2.4.0‘

注意:okhttp内部依赖okio,别忘了同时导入okio:

gradle: compile ‘com.squareup.okio:okio:1.5.0‘

2.http get

//创建okHttpClient对象
OkHttpClient mOkHttpClient = new OkHttpClient();
//创建一个Request
final Request request = new Request.Builder()
                .url("https://github.com/hongyangandroid")
                .build();
//new call
Call call = mOkHttpClient.newCall(request); 
//请求加入调度
call.enqueue(new Callback()
        {
            @Override
            public void onFailure(Request request, IOException e)
            {
            }

            @Override
            public void onResponse(final Response response) throws IOException
            {
                    //String htmlStr =  response.body().string();
            }
        });     
  1. 以上就是发送一个get请求的步骤,首先构造一个Request对象,参数最起码有个url,当然你可以通过Request.Builder设置更多的参数比如:headermethod等。

  2. 然后通过request的对象去构造得到一个Call对象,类似于将你的请求封装成了任务,既然是任务,就会有execute()cancel()等方法。

  3. 最后,我们希望以异步的方式去执行请求,所以我们调用的是call.enqueue,将call加入调度队列,然后等待任务执行完成,我们在Callback中即可得到结果。

3.Http Post 携带参数

Request request = buildMultipartFormRequest(
        url, new File[]{file}, new String[]{fileKey}, null);
FormEncodingBuilder builder = new FormEncodingBuilder();   
builder.add("username","张三");

Request request = new Request.Builder()
                   .url(url)
                .post(builder.build())
                .build();
 mOkHttpClient.newCall(request).enqueue(new Callback(){});

以上是关于okhttp的使用的主要内容,如果未能解决你的问题,请参考以下文章

从OKHttp框架看代码设计

如何使用 OkHttp 连接 SPDY 网站?

okhttp的简介之简单封装

OkHttp完全解析之整体调用流程

在 Volley 中实现 POST 请求时出现错误代码 400,但在使用 OkHttp 时却没有

OkHttp使用学习