OkHttp概述

目录

 

1.OkHttp是什么?

2.Get方式请求URL

3.Post方式提交数据到服务器

4.注意事项

5.引用OkHttp库

6.MockWebServer


1.OkHttp是什么?

HTTP是现代应用网络的方式请求协议。这是我们交换数据和媒体的方式。高效地执行HTTP可以使您的工作负载更快,并节省带宽。

OkHttp是一个默认高效的HTTP客户端:

1)HTTP/2支持允许对同一主机的所有请求共享一个套接字。

2)连接池减少了请求延迟(如果HTTP/2不可用)。

3)透明的GZIP压缩了下载文件的大小。

4)响应缓存完全避免了网络中的重复请求。

当网络出现问题时,OkHttp会坚持下来:它会从常见的连接问题中悄悄地恢复过来。如果您的服务有多个IP地址,如果第一个连接失败,OkHttp将尝试备用地址。这对于IPv4+IPv6和托管在冗余数据中心中的服务是必要的。OkHttp支持现代TLS特性(TLS 1.3、ALPN、证书固定)。可以将其配置为回退以实现广泛的连接。

使用OkHttp很容易。它的请求/响应API是用链式构建器和不变性设计的。它同时支持同步阻塞调用和带回调的异步调用。

2.Get方式请求URL

这个程序请求一个URL和以字符串的格式打印它的响应内容:

OkHttpClient client = new OkHttpClient();

String run(String url) throws IOException {
  Request request = new Request.Builder()
      .url(url)
      .build();

  try (Response response = client.newCall(request).execute()) {
    return response.body().string();
  }
}

3.Post方式提交数据到服务器

public static final MediaType JSON
    = MediaType.get("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();
  try (Response response = client.newCall(request).execute()) {
    return response.body().string();
  }
}

4.注意事项

OkHttp适用于Android 5.0+ (API级别21+)和Java 8+。

OkHttp依赖于Okio的高性能I/O和Kotlin标准库。两者都是具有强大向后兼容性的小型库。

我们强烈建议您随时更新OkHttp。与自动更新web浏览器一样,与HTTPS客户机保持同步是防范潜在安全问题的重要手段。我们跟踪动态TLS生态系统,并调整OkHttp以改进连接和安全性。

OkHttp使用您的平台的内置TLS实现。在Java平台上,OkHttp还支持Conscrypt(加密),它将BoringSSL与Java集成在一起。OkHttp将使用,如果它是第一个安全提供商:

Security.insertProviderAt(Conscrypt.newProvider(), 1);

OkHttp 3.12.x branch支持Android 2.3+ (API level 9+)和Java 7+。这些平台缺乏对TLS 1.2的支持,不应该使用。但是由于升级是困难的,我们将备份关键补丁到3.12.x分部到2020年12月31日。

5.引用OkHttp库

implementation("com.squareup.okhttp3:okhttp:4.4.0")

6.MockWebServer

OkHttp包含了一个测试HTTP,HTTPS和HTTP/2客户端;

testImplementation("com.squareup.okhttp3:mockwebserver:4.4.0")

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值