Skip to content

Commit

Permalink
Updated changelog for 2.4.0-RC1.
Browse files Browse the repository at this point in the history
  • Loading branch information
squarejesse committed May 16, 2015
1 parent a96c439 commit 646c3d5
Showing 1 changed file with 76 additions and 0 deletions.
76 changes: 76 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,81 @@
Change Log
==========

## Version 2.4.0-RC1

_2015-05-16_

* **New HttpUrl API.** It's like `java.net.URL` but good.

* **We've improved connect failure recovery.** We now differentiate between
setup, connecting, and connected and implement appropriate recovery rules
for each. This changes `Address` to no longer use `ConnectionSpec`. (This is
an incompatible API change).

* **`FormEncodingBuilder` now uses `%20` instead of `+` for encoded spaces.**
Both are permitted-by-spec, but `%20` requires fewer special cases.

* **Okio has been updated to 1.4.0.**
```
<dependency>
<groupId>com.squareup.okio</groupId>
<artifactId>okio</artifactId>
<version>1.4.0</version>
</dependency>
```
* **`Request.Builder` no longer accepts null if a request body is required.**
Passing null will now fail for request methods that require a body. Instead
use an empty body such as this one:
```
RequestBody.create(null, new byte[0]);
```
* **`CertificatePinner` now supports wildcard hostnames.** As always with
certificate pinning, you must be very careful to avoid [bricking][brick]
your app. You'll need to pin both the top-level domain and the `*.` domain
for full coverage.
```
client.setCertificatePinner(new CertificatePinner.Builder()
.add("publicobject.com", "sha1/DmxUShsZuNiqPQsX2Oi9uv2sCnw=")
.add("*.publicobject.com", "sha1/DmxUShsZuNiqPQsX2Oi9uv2sCnw=")
.add("publicobject.com", "sha1/SXxoaOSEzPC6BgGmxAt/EAcsajw=")
.add("*.publicobject.com", "sha1/SXxoaOSEzPC6BgGmxAt/EAcsajw=")
.add("publicobject.com", "sha1/blhOM3W9V/bVQhsWAcLYwPU6n24=")
.add("*.publicobject.com", "sha1/blhOM3W9V/bVQhsWAcLYwPU6n24=")
.add("publicobject.com", "sha1/T5x9IXmcrQ7YuQxXnxoCmeeQ84c=")
.add("*.publicobject.com", "sha1/T5x9IXmcrQ7YuQxXnxoCmeeQ84c=")
.build());
```
* **Interceptors lists are now deep-copied by `OkHttpClient.clone()`.**
Previously clones shared interceptors, which made it difficult to customize
the interceptors on a request-by-request basis.
* New: `Headers.toMultimap()`.
* New: `RequestBody.create(MediaType, ByteString)`.
* New: `ConnectionSpec.isCompatible(SSLSocket)`.
* New: `Dispatcher.getQueuedCallCount()` and
`Dispatcher.getRunningCallCount()`. These can be useful in diagnostics.
* Fix: OkHttp no longer shares timeouts between pooled connections. This was
causing some applications to crash when connections were reused.
* Fix: `OkApacheClient` now allows an empty `PUT` and `POST`.
* Fix: Websockets no longer rebuffer socket streams.
* Fix: Websockets are now better at handling close frames.
* Fix: Content type matching is now case insensitive.
* Fix: `Vary` headers are not lost with `android.net.http.HttpResponseCache`.
* Fix: HTTP/2 wasn't enforcing stream timeouts when writing the underlying
connection. Now it is.
* Fix: Never return null on `call.proceed()`. This was a bug in call
cancelation.
* Fix: When a network interceptor mutates a request, that change is now
reflected in `Response.networkResponse()`.
* Fix: Badly-behaving caches now throw a checked exception instead of a
`NullPointerException`.
* Fix: Better handling of uncaught exceptions in MockWebServer with HTTP/2.
## Version 2.3.0
_2015-03-16_
Expand Down Expand Up @@ -543,3 +618,4 @@ _2013-05-06_
Initial release.
[brick]: (https://noncombatant.org/2015/05/01/about-http-public-key-pinning/)

0 comments on commit 646c3d5

Please sign in to comment.