khttp 3.9.0 已发布,该版本包括大量 bug 修复,以及新功能,具体如下:
Version 3.9.0 2017-09-03
- Interceptors are more capable. The
Chain
interface now offers access to the call and can adjust all call timeouts. Note that this change is source-incompatible for code that implements theChain
interface. We don’t expect this to be a problem in practice! - OkHttp has an experimental new API for tracking metrics. The new
EventListener
API is designed to help developers monitor HTTP requests’ size and duration. This feature is an unstable preview: the API is subject to change, and the implementation is incomplete. This is a big new API we are eager for feedback. - New: Support ALPN via Google Play Services’ Dynamic Security Provider. This expands HTTP/2 support to older Android devices that have Google Play Services.
- New: Consider all routes when looking for candidate coalesced connections. This increases the likelihood that HTTP/2 connections will be shared.
- New: Authentication challenges and credentials now use a charset. Use this in your authenticator to support user names and passwords with non-ASCII characters.
- New: Accept a charset in
FormBody.Builder
. Previously form bodies were always UTF-8. - New: Support the
immutable
cache-control directive. - Fix: Don’t crash when an HTTP/2 call is redirected while the connection is being shut down.
- Fix: Don’t drop headers of healthy streams that raced with
GOAWAY
frames. This bug would cause HTTP/2 streams to occasional hang when the connection was shutting down. - Fix: Honor
OkHttpClient.retryOnConnectionFailure()
when the response is a HTTP 408 Request Timeout. If retries are enabled, OkHttp will retry exactly once in response to a 408. - Fix: Don’t crash when reading the empty
HEAD
response body if it specifies aContent-Length
. - Fix: Don’t crash if the thread is interrupted while reading the public suffix database.
- Fix: Use relative resource path when loading the public suffix database. Loading the resource using a path relative to the class prevents conflicts when the OkHttp classes are relocated (shaded) by allowing multiple private copies of the database.
- Fix: Accept cookies for URLs that have an IPv6 address for a host.
- Fix: Don’t log the protocol (HTTP/1.1, h2) in HttpLoggingInterceptor if the protocol isn’t negotiated yet! Previously we’d log HTTP/1.1 by default, and this was confusing.
- Fix: Omit the message from MockWebServer’s HTTP/2
:status
header. - Fix: Handle ‘Expect: 100 Continue’ properly in MockWebServer.
下载地址:
转自 http://www.oschina.net/news/88581/okhttp-3-9-0