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