android okhttp 3.8.0版本的使用

官网地址:http://square.github.io/okhttp/ square开源的项目非常好,retrofit 也是集成的okhttp 之前一直用的android-async-http 是基于 httpclient的。 okhttp基于HttpUrlconnection的,androd建议在5.0以上使用HttpUrlconnection。

有什么区别这里分享一个连接:http://blog.csdn.net/hguang_zjh/article/details/33743249

下面介绍okhttp 的简单用法 初始化okhttp参数

static OkHttpClient client =  new OkHttpClient.Builder()
            .readTimeout(300,TimeUnit.SECONDS)//设置读取超时时间
            .writeTimeout(300,TimeUnit.SECONDS)//设置写的超时时间
            .connectTimeout(300,TimeUnit.SECONDS)//设置连接超时时间
            .build();

get方式的请求代码如下:

Request request = new Request.Builder().url(“地址”).build();

        client.newCall(request).enqueue(new Callback() {
            @Override
            public void onFailure(Call call, IOException e) {
               //加载失败
            }
            @Override
            public void onResponse(Call call, Response response) throws IOException {
                if (!response.isSuccessful()){
                    //加载失败
                    return;
                }
                //throw new IOException("Unexpected code " + response);
//                Headers responseHeaders = response.headers();
//                for (int i = 0; i < responseHeaders.size(); i++) {
//                    System.out.println(responseHeaders.name(i) + ": " + responseHeaders.value(i));
//                }
                String body = response.body().string();
                if( body== null || body.equals("" ) ){
                   //加载失败
                    return;
                }else{
                    //body 就是 返回的数据内容
                }
            }
        });

post请求方式如下:

//3.8.0 最新的post参数
FormBody body = new FormBody.Builder()
                //.add("your_param_1", "your_value_1")
                //.add("your_param_2", "your_value_2")
                .build();
Request request = new Request.Builder().url(“地址”).post(body).build();

        client.newCall(request).enqueue(new Callback() {
            @Override
            public void onFailure(Call call, IOException e) {
               //加载失败
            }
            @Override
            public void onResponse(Call call, Response response) throws IOException {
                if (!response.isSuccessful()){
                    //加载失败
                    return;
                }
                //throw new IOException("Unexpected code " + response);
//                Headers responseHeaders = response.headers();
//                for (int i = 0; i < responseHeaders.size(); i++) {
//                    System.out.println(responseHeaders.name(i) + ": " + responseHeaders.value(i));
//                }
                String body = response.body().string();
                if( body== null || body.equals("" ) ){
                   //加载失败
                    return;
                }else{
                    //body 就是 返回的数据内容
                }
            }
        });

就简单介绍使用方法,还有更多的功能待你发现,比如文件上传,post表单提交等等

其它博文连接:http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/0106/2275.htmlhttp://blog.csdn.net/lmj623565791/article/details/47911083