OkHttp之简介

作者: DoAndKeep | 来源:发表于2016-08-06 14:34 被阅读951次

    一个Android和Java上的HTTP和HTTP/2客户端。

    简介

    HTTP是应用程序访问网络的方式,就是如何交换数据和媒体。高效使用HTTP可以使得事务加载更快并节省带宽。

    OkHttp是一个高效HTTP客户端,原因如下:

    • HTTP/2支持所有访问相同主机的请求共享一个套接字。
    • 连接池减少了请求延迟(如果HTTP/2不可用)。
    • 透明GZIP压缩减少了下载大小。
    • 响应缓存完全避免了重复请求的网络使用。

    OkHttp在网络故障时坚守:它会静默地从普遍连接问题中恢复。如果你的服务有多个IP地址,OkHttp会在第一次连接失败时尝试另外一个地址。对于IPv4+IPv6以及服务放在多个数据中心的情况,这是很重要的。OkHttp会使用先进的TLS特性(SNI,ALPN)来初始化新连接,如果握手失败会回退到TLS 1.0。

    使用OkHttp很简单。它的请求/响应API设计为流的构建方式并且不会改变。它支持同步阻塞调用和异步回调调用。

    OkHttp支持Android2.3及更高,Java1.7及以上。

    示例

    使用Get获取内容

    下面的代码下载一个URL并使用String打印它的内容。

    OkHttpClient client = new OkHttpClient();
    
    String run(String url) throws IOException {
      Request request = new Request.Builder()
          .url(url)
          .build();
    
      Response response = client.newCall(request).execute();
      return response.body().string();
    }
    

    使用Post上传数据

    下面的代码上传数据到服务器。

    public static final MediaType JSON
        = MediaType.parse("application/json; charset=utf-8");
    
    OkHttpClient client = new OkHttpClient();
    
    String post(String url, String json) throws IOException {
      RequestBody body = RequestBody.create(JSON, json);
      Request request = new Request.Builder()
          .url(url)
          .post(body)
          .build();
      Response response = client.newCall(request).execute();
      return response.body().string();
    }
    

    原文链接:
    http://square.github.io/okhttp/

    OkHttp官方文档系列文章:

    相关文章

      网友评论

        本文标题:OkHttp之简介

        本文链接:https://www.haomeiwen.com/subject/ldmksttx.html