Android 网络框架学习之OKHttp

本文详细介绍了Android中OKHttp的使用,包括安装、GET请求的同步与异步方式、设置Header、POST请求的各种形式如发送String、文件、参数、multipart及Json,还涵盖了响应缓存、取消请求、超时处理和认证机制。同时,文章也探讨了OKHttp的拦截器,包括应用级和网络级拦截器的应用。
摘要由CSDN通过智能技术生成

OKHTTP

okHttp:  OKHttp是Android版Http客户端。非常高效,支持SPDY、连接池、GZIP和 HTTP 缓存。默认情况下,OKHttp会自动处理常见的网络问题,像二次连接、SSL的握手问题。 如果你的应用程序中集成了OKHttp,Retrofit默认会使用OKHttp处理其他网络层请求
An HTTP & SPDY client for Android and Java applications
从Android4.4开始HttpURLConnection的底层实现采用的是okHttp.
使用要求:对于Android:2.3以上,对于Java:java7以上
两个模块:
okhttp-urlconnection实现.HttpURLConnection API;
okhttp-apache实现Apache HttpClient API.
依赖: okio(https://github.com/square/okio): Okio, which OkHttp uses for fast I/O and resizable buffers.

安装:

maven:
<dependency>
  <groupId>com.squareup.okhttp</groupId>
  <artifactId>okhttp</artifactId>
  <version>2.3.0</version>
</dependency>
Gradle:
compile 'com.squareup.okhttp:okhttp:2.3.0'

GET A URL

同步GET:

  private final OkHttpClient client = new OkHttpClient();

  public void run() throws Exception {
    Request request = new Request.Builder()
        .url("http://publicobject.com/helloworld.txt")
        .build();

    Response response = client.newCall(request).execute();
    if (!response.isSuccessful()) 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));
    }

    System.out.println(response.body().string());
  }

异步GET:

在一个工作线程中下载文件,当响应可读时回调Callback接口。读取响应时会阻塞当前线程。OkHttp现阶段不提供异步api来接收响应体。
  private final OkHttpClient client = new OkHttpClient();

  public void run() throws Exception {
    Request request = new Request.Builder()
        .url("http://publicobject.com/helloworld.txt")
        .build();

    client.newCall(request).enqueue(new
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值