OkHttp的介绍及基础使用

原创 2017年01月03日 20:48:43

特点

    开源Http库
    支持GZIP压缩
    支持响应缓存
    支持链接复用
    Okhttp作为安卓4.4的UrlConnection的底层采纳

配置

    compile 'com.squareup.okhttp3:okhttp:3.4.1'

配置OkhttpClient

//单独配置一个使用newBuilder()
    private OkHttpClient mHttpClient = new OkHttpClient.Builder()
            .connectTimeout(10, TimeUnit.SECONDS)
            .readTimeout(10, TimeUnit.SECONDS)
            .writeTimeout(10, TimeUnit.SECONDS).build();

get请求

    private String doGet() {
        Request request = new Request.Builder().url("http://httpbin.org/get")
                .header("User-Agent", "OkHttpDemo/1.0")//同一个key,覆盖
                .header("User-Agent", "OkHttpDemo/2.0")
                .addHeader("X-Key", "value1")
                .addHeader("X-Key", "value2").build();//同一个key,追加
        try {
            Response response = mHttpClient.newCall(request).execute();
            if (response.isSuccessful()) {
                return response.body().string();
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
        return null;
    }

post请求

    private String doPost() {
        //请求体
        RequestBody requestBody = new RequestBody() {
            @Override
            public MediaType contentType() {
                return MediaType.parse("text/plain");
            }

            @Override
            public void writeTo(BufferedSink sink) throws IOException {
                InputStream inputStream = getResources().openRawResource(R.raw.data);
                byte[] buffer = new byte[1024];
                int read;
                while ((read = inputStream.read(buffer)) > 0) {
                    sink.write(buffer, 0, read);
                }
                sink.flush();
                inputStream.close();
            }
        };

        MultipartBody multipartBody = new MultipartBody.Builder().addPart(requestBody)
                .addPart(RequestBody.create(MediaType.parse("text/plain"),
                        "this is test data from code")).build();
        Request request = new Request.Builder().url("http://httpbin.org/post")
                .header("User-Agent", "OkHttpDemo/1.0")
                .method("POST", multipartBody)
                .build();
        try {
            Call call = mHttpClient.newCall(request);
            Response response = call.execute();
            if (response.isSuccessful()) {
                return response.body().string();
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
        return null;
    }

异步get请求

    private void doGetAsync() {
        Request request = new Request.Builder().url("http://httpbin.org/get")
                .header("User-Agent", "OkHttpDemo/1.0").build();

        mHttpClient.newCall(request).enqueue(new Callback() {
            @Override
            public void onFailure(Call call, IOException e) {

            }

            @Override
            public void onResponse(Call call, final Response response) throws IOException {
                if (response.isSuccessful()) {
                    final String result = response.body().string();
                    mTvContent.post(new Runnable() {
                        @Override
                        public void run() {
                            mTvContent.setText(result);
                        }
                    });
                }
            }
        });
    }
版权声明:本文为博主原创文章,未经博主允许不得转载。

okhttp网络框架的使用

OKhttp使用的步骤: 1.在build中加入okhttp,Gson的架包,还有修改build中的picasso:compile 'com.squareup.picasso:picasso:2.5...
  • Zuo_XP
  • Zuo_XP
  • 2016年10月10日 16:24
  • 1087

okhttp使用总结

okhttp使用总结
  • anthony_3
  • anthony_3
  • 2016年01月21日 14:39
  • 1452

OkHttp完全解析(七)SPDY协议详细介绍

SPDY是什么? SPDY 是 Google 开发的基于传输控制协议 (TCP) 的应用层协议,开发组正在推动 SPDY 成为正式标准(现为互联网草案)。SPDY 协议旨在通过压缩、多路复用...
  • OyangYujun
  • OyangYujun
  • 2015年11月25日 17:20
  • 2785

okhttp简单介绍

Android网络请求库比较多,常用的HttpURLConnection、volley、okhttp、retrofit等。 Android开发常见的第三方框架:http://blog.csdn.ne...
  • Jack_Chen3
  • Jack_Chen3
  • 2016年04月18日 21:44
  • 2422

Android 网络操作库 okhttp

现在Android网络方面的第三方库很多,volley,Retrofit,OKHttp等,各有各自的特点。okhttp是一款高效的HTTP客户端,支持连接同一地址的链接共享同一个socket,通过连接...
  • shineflowers
  • shineflowers
  • 2016年10月30日 18:49
  • 869

使用OkHttp作为Volley的传输

原文链接 A HttpStack implementation for Volley that uses OkHttp as its transport./** * The MIT License...
  • lonewolf521125
  • lonewolf521125
  • 2015年08月03日 15:04
  • 5389

Android网络框架-OkHttp使用

Android网络框架-OkHttp使用
  • Zero_all
  • Zero_all
  • 2017年04月20日 22:21
  • 734

Java 基础内容简介

一.基本概念 类: 将一些具有相似属性和共同方法的事物抽象为一个类,以便于对事物进行描述.(足球,篮球,排球可以抽象为一个类 球 ) 对象:一个类的具体实例.(球的一个具体事物,足球) 继承: ...
  • mydream20130314
  • mydream20130314
  • 2015年04月05日 11:22
  • 394

OKHttp使用详解

一,OKHttp介绍okhttp是一个第三方类库,用于android中请求网络。这是一个开源项目,是安卓端最火热的轻量级框架,由移动支付Square公司贡献(该公司还贡献了Picasso和LeakCa...
  • fightingXia
  • fightingXia
  • 2017年04月29日 12:38
  • 3418

OKHttp的基本使用和简单封装

1.写在前面:   网络请求框架层出不穷,像google的volley,xutils等等。听说Okhttp性能很高,最近写新项目,决定用Okhttp来尝试一下(原谅我是小白,第一次使用,以前还是用v...
  • qq_16240393
  • qq_16240393
  • 2017年02月04日 15:53
  • 763
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:OkHttp的介绍及基础使用
举报原因:
原因补充:

(最多只允许输入30个字)