OkHttp 1.x 更新日志¶
版本 1.6.0¶
2014-05-23
- 提供桥梁,以便更轻松地从 OkHttp 1.x 迁移到 OkHttp 2.0。这增加了
OkUrlFactory
、Cache
和@Deprecated
注解,用于标记在 2.0 中删除的 API。
版本 1.5.4¶
2014-04-14
- 取消在 Android 中的 ALPN 支持。所有当前发布的版本都存在并发错误。
- 仅通过断开套接字来支持异步断开连接。这应该可以防止多个线程并发访问流时出现不稳定。
版本 1.5.3¶
2014-03-29
- 修复了从 POST 重定向到 GET 时未始终丢弃 Content-Length 头部的错误。
- 实现对
Thread.interrupt()
的基本支持。OkHttp 现在在执行阻塞调用之前检查是否发生中断。如果发生中断,则抛出InterruptedIOException
。
版本 1.5.2¶
2014-03-17
- 修复了删除
HttpResponseCache
中不存在的文件导致 IOException 的错误。 - 修复了 HTTP/2 中的错误,该错误导致我们的 HPACK 解码器在某些逐出场景下不发出条目,从而导致响应头部丢失。
版本 1.5.1¶
2014-03-11
- 修复 1.5.0 中的回归问题,该问题导致连接未被回收。
- 修复 1.5.0 中的回归问题,该问题导致透明 Gzip 因尝试从另一个 I/O 故障中恢复而损坏。
- 修复 spdy/3.1 头部可能未正确压缩的问题。
- 修复 spdy/3.1 和 http/2 中使用错误窗口大小的问题。
- 修复 1.5.0 中的回归问题,该问题导致条件缓存响应可能损坏连接池。
版本 1.5.0¶
2014-03-07
OkHttp 不再使用默认的 SSL 上下文。¶
希望将全局 SSL 上下文与 OkHttp 一起使用的应用程序应按如下配置其 OkHttpClient 实例
okHttpClient.setSslSocketFactory(HttpsURLConnection.getDefaultSSLSocketFactory());
一个更简单的解决方案是避免使用共享的默认 SSL 套接字工厂。相反,如果您需要自定义 SSL,请仅针对您特定的 OkHttpClient 实例进行。
合成头部已更改¶
之前 OkHttp 添加了一个合成响应头部 OkHttp-Selected-Transport
。它已被一个新的合成头部 OkHttp-Selected-Protocol
取代。
变更¶
- 新增:支持
HTTP-draft-09/2.0
。 - 新增:支持
spdy/3.1
。取消了对spdy/3
的支持。 - 新增:在支持 ALPN 的 Android 平台上使用它 (4.4+)。
- 新增:CacheControl 模型和解析器。
- 新增:MockWebServer 中的协议选择。
- 修复:路由选择不应使用已知会失败的 TLS 模式。
- 修复:即使响应体过早关闭,也缓存 SPDY 响应。
- 修复:中止下载时使用严格超时。
- 修复:支持 Shoutcast HTTP 响应,例如
ICY 200 OK
。 - 修复:如果没有响应体,则不解压缩。
- 修复:重定向时不泄露 gzip 流。
- 修复:不对无效主机进行 DNS 查找。
- 修复:读取 gzip 流时耗尽底层流。
- 修复:支持
PATCH
方法。 - 修复:支持
DELETE
方法上的请求体。 - 修复:删除
okhttp-protocols
模块。 - 内部:将内部字节数组缓冲区替换为池化缓冲区(“OkBuffer”)。
版本 1.3.0¶
2014-01-11
- 新增:在客户端和 MockWebServer 中支持“PATCH” HTTP 方法。
- 修复:从 POST 重定向到 GET 时丢弃
Content-Length
头部。 - 修复:正确读取具有畸形头部名称的缓存头部条目。
- 修复:除“Basic”外,不直接支持任何其他认证方案。
- 修复:尊重回收连接上的读取超时。
- 修复:将多个 cookie 值作为单个头部并使用分隔符传输。
- 修复:确保连接的
getHeaderFields()
方法永不返回null
。 - 修复:为 GZip 响应将正确的
Content-Encoding
头部持久化到缓存。 - 修复:消除 SPDY 流中导致连接无法重用的罕见竞争条件。
- 修复:将 HTTP 日期格式更改为 UTC,以符合 RFC2616 第 3.3 节。
- 修复:支持带有尾随字节的 SPDY 头部块。
- 修复:允许使用
;
作为Cache-Control
头部的分隔符。 - 修复:HTTPS POST 请求总是自动缓冲的错误。
- 修复:解析 SPDY 头部时遵循读取超时。
版本 1.2.1¶
2013-08-23
- 解决“jar-with-dependencies” artifact 创建问题。
- 修复:支持空的 SPDY 头部值。
版本 1.2.0¶
2013-08-11
- OkHttpClient 新增 API,用于设置连接和读取的默认超时。
- 修复缓存 SPDY 响应时的错误。
- 修复 SPDY 加半关闭流的错误。(感谢 kwuollett)
- 修复 Apache HTTP 客户端适配器中 gzipped 流的
Content-Length
报告错误。(感谢 kwuollett) - 解决 Alcatel
getByInetAddress
错误。(感谢 k.kocel) - 更积极地测试池化套接字后才重用。(感谢 warpspin)
- 在 Apache HTTP 客户端适配器中包含
Content-Type
和Content-Encoding
。(感谢 kwuollett) - 为 OkHttp 添加媒体类型类。
-
更改自定义头部前缀
* 改进类 POST 请求的缓存失效处理。* 将 MockWebServer 引入 OkHttp 并使其支持 SPDY。X-Android-Sent-Millis is now OkHttp-Sent-Millis X-Android-Received-Millis is now OkHttp-Received-Millis X-Android-Response-Source is now OkHttp-Response-Source X-Android-Selected-Transport is now OkHttp-Selected-Transport
版本 1.1.1¶
2013-06-23
- 修复:缓存从 HTTP 重定向到 HTTPS 的响应时出现 ClassCastException。
版本 1.1.0¶
2013-06-15
- 修复:由于主机名验证器选择方式的错误,导致大多数 HTTPS 连接无法重用。
- 修复:SpdyConnection 中的锁定错误。
- 修复:忽略空头部值(为了与 HttpURLConnection 兼容)。
- 添加 URLStreamHandlerFactory 支持,以便
URL.openConnection()
使用 OkHttp。 - 通过魔术请求头部公开传输协议(“http/1.1”、“spdy/3”等)。使用
X-Android-Transports
写入首选传输协议,使用X-Android-Selected-Transport
读取协商的传输协议。
版本 1.0.2¶
2013-05-11
- 修复:移除 Java 6 专属 API 的使用。
- 修复:查询 MTU 时正确处理来自
NetworkInterface
的异常。 - 修复:确保 MTU 具有合理的默认值和上限。
版本 1.0.1¶
2013-05-06
- 更正方法名中 SSL 的大小写(
getSslSocketFactory
/setSslSocketFactory
)。
版本 1.0.0¶
2013-05-06
首次发布。