Android开发之Retrofit/OkHttp使用

本文介绍了Android开发中常用的网络请求库OkHttp及其优点,包括连接池、GZIP压缩和缓存机制。详细阐述了OkHttp的拦截器机制,包括应用拦截器和网络拦截器的区别。此外,还探讨了Retrofit这一基于OkHttp的RESTful框架,说明了Retrofit如何简化网络请求接口的封装,并提供了使用示例。
摘要由CSDN通过智能技术生成
OkHttp
简介

OkHttp是时下最火的Http请求框架,其官网及源码地址如下:

相比于其他网络请求框架,OkHttp有什么优点呢?官方介绍如下:

  • HTTP/2 support allows all requests to the same host to share a socket.
  • Connection pooling reduces request latency (if HTTP/2 isn’t available).
  • Transparent GZIP shrinks download sizes.
  • Response caching avoids the network completely for repeat requests.

从上面的介绍我们可以得出有下面这些优点:

  • 在Http/2的支持下,如果网络请求的host是同一个时,允许这些请求共用一个socket。
  • 使用连接池减少请求延迟。
  • 透明的GZIP压缩,减少数据流量。
  • 支持响应缓存,避免重复的网络请求。
使用
添加依赖
    implementation 'com.squareup.okhttp3:okhttp:3.11.0'
    implementation 'com.squareup.okhttp3:logging-interceptor:3.10.0'
GET请求
        //创建OkHttpClient对象
        OkHttpClient httpClient = new OkHttpClient();
        //创建Request对象
        Request request = new Request.Builder()
                .url("http://www.baidu.com")
                .addHeader("key", "value")
                .get()
                .build();
        
        //get方法同步请求
        try {
            Response response = httpClient.newCall(request).execute();
            if (response.isSuccessful()){
                String result = response.body().string();
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
       
        //get方法异步请求,异步请求的回调方法均在子线程中执行
        httpClient.newCall(request).enqueue(new Callback() {
            @Override
            public void onFailure(Call call, IOException e) {
                //请求失败 
            }

            @Override
            public void onResponse(Call call, Response response) throws IOException {
                //请求成功
                String result = response.body().string();
            }
        });
POST请求
     
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值