1Change Log
2==========
3
4## Version 1.5.3
5
6_2014-03-29_
7
8 * Fix bug where the Content-Length header was not always dropped when
9   following a redirect from a POST to a GET.
10 * Implement basic support for `Thread.interrupt()`. OkHttp now checks
11   for an interruption before doing a blocking call. If it is interrupted,
12   it throws an `InterruptedIOException`.
13
14## Version 1.5.2
15
16_2014-03-17_
17
18 * Fix bug where deleting a file that was absent from the `HttpResponseCache`
19   caused an IOException.
20 * Fix bug in HTTP/2 where our HPACK decoder wasn't emitting entries in
21   certain eviction scenarios, leading to dropped response headers.
22
23## Version 1.5.1
24
25_2014-03-11_
26
27 * Fix 1.5.0 regression where connections should not have been recycled.
28 * Fix 1.5.0 regression where transparent Gzip was broken by attempting to
29   recover from another I/O failure.
30 * Fix problems where spdy/3.1 headers may not have been compressed properly.
31 * Fix problems with spdy/3.1 and http/2 where the wrong window size was being
32   used.
33 * Fix 1.5.0 regression where conditional cache responses could corrupt the
34   connection pool.
35
36
37## Version 1.5.0
38
39_2014-03-07_
40
41
42##### OkHttp no longer uses the default SSL context.
43
44Applications that want to use the global SSL context with OkHttp should configure their
45OkHttpClient instances with the following:
46
47```java
48okHttpClient.setSslSocketFactory(HttpsURLConnection.getDefaultSSLSocketFactory());
49```
50
51A simpler solution is to avoid the shared default SSL socket factory. Instead, if you
52need to customize SSL, do so for your specific OkHttpClient instance only.
53
54##### Synthetic headers have changed
55
56Previously OkHttp added a synthetic response header, `OkHttp-Selected-Transport`. It
57has been replaced with a new synthetic header, `OkHttp-Selected-Protocol`.
58
59##### Changes
60
61 * New: Support for `HTTP-draft-09/2.0`.
62 * New: Support for `spdy/3.1`. Dropped support for `spdy/3`.
63 * New: Use ALPN on Android platforms that support it (4.4+)
64 * New: CacheControl model and parser.
65 * New: Protocol selection in MockWebServer.
66 * Fix: Route selection shouldn't use TLS modes that we know will fail.
67 * Fix: Cache SPDY responses even if the response body is closed prematurely.
68 * Fix: Use strict timeouts when aborting a download.
69 * Fix: Support Shoutcast HTTP responses like `ICY 200 OK`.
70 * Fix: Don't unzip if there isn't a response body.
71 * Fix: Don't leak gzip streams on redirects.
72 * Fix: Don't do DNS lookups on invalid hosts.
73 * Fix: Exhaust the underlying stream when reading gzip streams.
74 * Fix: Support the `PATCH` method.
75 * Fix: Support request bodies on `DELETE` method.
76 * Fix: Drop the `okhttp-protocols` module.
77 * Internal: Replaced internal byte array buffers with pooled buffers ("OkBuffer").
78
79
80## Version 1.3.0
81
82_2014-01-11_
83
84 * New: Support for "PATCH" HTTP method in client and MockWebServer.
85 * Fix: Drop `Content-Length` header when redirected from POST to GET.
86 * Fix: Correctly read cached header entries with malformed header names.
87 * Fix: Do not directly support any authentication schemes other than "Basic".
88 * Fix: Respect read timeouts on recycled connections.
89 * Fix: Transmit multiple cookie values as a single header with delimiter.
90 * Fix: Ensure `null` is never returned from a connection's `getHeaderFields()`.
91 * Fix: Persist proper `Content-Encoding` header to cache for GZip responses.
92 * Fix: Eliminate rare race condition in SPDY streams that would prevent connection reuse.
93 * Fix: Change HTTP date formats to UTC to conform to RFC2616 section 3.3.
94 * Fix: Support SPDY header blocks with trailing bytes.
95 * Fix: Allow `;` as separator for `Cache-Control` header.
96 * Fix: Correct bug where HTTPS POST requests were always automatically buffered.
97 * Fix: Honor read timeout when parsing SPDY headers.
98
99
100## Version 1.2.1
101
102_2013-08-23_
103
104 * Resolve issue with 'jar-with-dependencies' artifact creation.
105 * Fix: Support empty SPDY header values.
106
107
108## Version 1.2.0
109
110_2013-08-11_
111
112 *  New APIs on OkHttpClient to set default timeouts for connect and read.
113 *  Fix bug when caching SPDY responses.
114 *  Fix a bug with SPDY plus half-closed streams. (thanks kwuollett)
115 *  Fix a bug in `Content-Length` reporting for gzipped streams in the Apache
116    HTTP client adapter. (thanks kwuollett)
117 *  Work around the Alcatel `getByInetAddress` bug (thanks k.kocel)
118 *  Be more aggressive about testing pooled sockets before reuse. (thanks
119    warpspin)
120 *  Include `Content-Type` and `Content-Encoding` in the Apache HTTP client
121    adapter. (thanks kwuollett)
122 *  Add a media type class to OkHttp.
123 *  Change custom header prefix:
124
125    ```
126    X-Android-Sent-Millis is now OkHttp-Sent-Millis
127    X-Android-Received-Millis is now OkHttp-Received-Millis
128    X-Android-Response-Source is now OkHttp-Response-Source
129    X-Android-Selected-Transport is now OkHttp-Selected-Transport
130    ```
131 *  Improve cache invalidation for POST-like requests.
132 *  Bring MockWebServer into OkHttp and teach it SPDY.
133
134
135## Version 1.1.1
136
137_2013-06-23_
138
139 * Fix: ClassCastException when caching responses that were redirected from
140   HTTP to HTTPS.
141
142
143## Version 1.1.0
144
145_2013-06-15_
146
147 * Fix: Connection reuse was broken for most HTTPS connections due to a bug in
148   the way the hostname verifier was selected.
149 * Fix: Locking bug in SpdyConnection.
150 * Fix: Ignore null header values (for compatibility with HttpURLConnection).
151 * Add URLStreamHandlerFactory support so that `URL.openConnection()` uses
152   OkHttp.
153 * Expose the transport ("http/1.1", "spdy/3", etc.) via magic request headers.
154   Use `X-Android-Transports` to write the preferred transports and
155   `X-Android-Selected-Transport` to read the negotiated transport.
156
157
158## Version 1.0.2
159
160_2013-05-11_
161
162 * Fix: Remove use of Java 6-only APIs.
163 * Fix: Properly handle exceptions from `NetworkInterface` when querying MTU.
164 * Fix: Ensure MTU has a reasonable default and upper-bound.
165
166
167## Version 1.0.1
168
169_2013-05-06_
170
171 * Correct casing of SSL in method names (`getSslSocketFactory`/`setSslSocketFactory`).
172
173
174## Version 1.0.0
175
176_2013-05-06_
177
178Initial release.
179
180