com.squareup.okhttp3:okhttp-coroutines-jvm
5.0.0-alpha.12
#394 most downloaded on Maven Central
square/okhttp
What this package is like to depend on
Last release 3 years ago
no release in 18 months
Release timing varies
gaps range from 3 weeks to 12 months
Unknown
no stable releases
Nothing withdrawn
no release was ever pulled
4 years old
7 releases · first in 2022
0 releases in the last 12 months
see the full history below
Release timeline
7 releases · Mar 2022 to Dec 2023Releases
latest 7-
5.0.0-alpha.1217 Dec 2023 pre-releaseRelease notes
Open source →2023-12-17
We took too long to cut this release and there's a lot of changes in it. We've been busy.
Although this release is labeled alpha, the only unstable thing in it is our new APIs. This release has many critical bug fixes and is safe to run in production. We're eager to stabilize our new APIs so we can get out of alpha.
-
New: Support Java 21's virtual threads (‘OpenJDK Project Loom’). We changed OkHttp's internals to use
LockandConditioninstead ofsynchronizedfor best resource utilization. -
New: Switch our Internationalized Domain Name (IDN) implementation to [UTS #46 Nontransitional Processing][uts46]. With this fix, the
ßcode point no longer maps toss. OkHttp now embeds its own IDN mapping table in the library. -
New: Prefer the client's configured precedence order for TLS cipher suites. (OkHttp used to prefer the JDK’s precedence order.) This change may cause your HTTP calls to negotiate a different cipher suite than before! OkHttp's defaults cipher suites are selected for good security and performance.
-
New:
ConnectionListenerpublishes events for connects, disconnects, and use of pooled connections. -
Fix: Immediately update the connection's flow control window instead of waiting for the receiving stream to process it.
This change may increase OkHttp's memory use for applications that make many concurrent HTTP calls and that can receive data faster than they can process it. Previously, OkHttp limited HTTP/2 to 16 MiB of unacknowledged data per connection. With this fix there is a limit of 16 MiB of unacknowledged data per stream and no per-connection limit.
-
Fix: Don't close a
Deflaterwhile we're still using it to compress a web socket message. We had a severe bug where web sockets were closed on the wrong thread, which causedNullPointerExceptioncrashes inDeflater. -
Fix: Don't crash after a web socket fails its connection upgrade. We incorrectly released the web socket's connections back to the pool before their resources were cleaned up.
-
Fix: Don't infinite loop when a received web socket message has self-terminating compressed data.
-
Fix: Don't fail the call when the response code is ‘HTTP 102 Processing’ or ‘HTTP 103 Early Hints’.
-
Fix: Honor interceptors' changes to connect and read timeouts.
-
Fix: Recover gracefully when a cached response is corrupted on disk.
-
Fix: Don't leak file handles when a cache disk write fails.
-
Fix: Don't hang when the public suffix database cannot be loaded. We had a bug where a failure reading the public suffix database would cause subsequent reads to hang when they should have crashed.
-
Fix: Avoid
InetAddress.getCanonicalHostName()in MockWebServer. This avoids problems if the host machine's IP address has additional DNS registrations. -
New: Create a JPMS-compatible artifact for
JavaNetCookieJar. Previously, multiple OkHttp artifacts defined classes in theokhttp3package, but this is forbidden by the Java module system. We've fixed this with a new package (okhttp3.java.net.cookiejar) and a new artifact,com.squareup.okhttp3:okhttp-java-net-cookiehandler. (The original artifact now delegates to this new one.)implementation("com.squareup.okhttp3:okhttp-java-net-cookiehandler:5.0.0-alpha.12") -
New:
Cookie.sameSitedetermines whether cookies should be sent on cross-site requests. This is used by servers to defend against Cross-Site Request Forgery (CSRF) attacks. -
New: Log the total time of the HTTP call in
HttpLoggingInterceptor. -
New:
OkHttpClient.Buildernow has APIs that usekotlin.time.Duration. -
New:
mockwebserver3.SocketPolicyis now a sealed interface. This is one of several backwards-incompatible API changes that may impact early adopters of this alpha API. -
New:
mockwebserver3.Streamfor duplex streams. -
New:
mockwebserver3.MockResponseBodyfor streamed response bodies. -
New:
mockwebserver3.MockResponseis now immutable, with aBuilder. -
New:
mockwebserver3.RecordedRequest.handshakeServerNamesreturns the SNI (Server Name Indication) attribute from the TLS handshake. -
Upgrade: [Kotlin 1.9.21][kotlin_1_9_21].
-
Upgrade: [Okio 3.7.0][okio_3_7_0].
-
-
5.0.0-alpha.1124 Dec 2022 pre-releaseRelease notes
Open source →2022-12-24
- New: Enable fast fallback by default. It's our implementation of Happy Eyeballs,
[RFC 8305][rfc_8305]. Disable with
OkHttpClient.Builder.fastFallback(false). - Fix: Don't log response bodies for server-sent events.
- Fix: Skip early hints (status code 103) responses.
- Fix: Don't log sensitive headers in
Request.toString(). - Fix: Don't crash when the dispatcher's
ExecutorServiceis shutdown with many calls still enqueued. - Upgrade: [GraalVM 22][graalvm_22].
- Upgrade: [Kotlin 1.7.10][kotlin_1_7_10].
- New: Enable fast fallback by default. It's our implementation of Happy Eyeballs,
[RFC 8305][rfc_8305]. Disable with
-
5.0.0-alpha.1027 Jun 2022 pre-releaseRelease notes
Open source →2022-06-26
- Fix: Configure the multiplatform artifact (
com.squareup.okhttp3:okhttp:3.x.x) to depend on the JVM artifact (com.squareup.okhttp3:okhttp-jvm:3.x.x) for Maven builds. This should work-around an issue where Maven doesn't interpret Gradle metadata. - Fix: Make another attempt at supporting Kotlin 1.5.31 at runtime. We were crashing on
DurationUnitwhich was a typealias in 1.5.x. - Upgrade: [Okio 3.2.0][okio_3_2_0].
- Fix: Configure the multiplatform artifact (
-
5.0.0-alpha.916 Jun 2022 pre-releaseRelease notes
Open source →2022-06-16
- New: Enforce label length limits in URLs.
HttpUrlnow rejects URLs whose domains aren't valid. This includes overly-long domain names (longer than 253 characters), overly-long labels (more than 63 characters between dots), and empty labels. - New: Don't include the
Content-Lengthheader in multipart bodies. Servers must delimit OkHttp's request bodies using the boundary only. (This change makes OkHttp more consistent with browsers and other HTTP clients.) - New: Drop the
tunnelProxyargument inMockWebServer.useHttps(). This change only impacts the OkHttp 5.x API which uses themockwebserver3package. - Fix: Don't call
toDuration()which isn't available in kotlin-stdlib 1.4.
- New: Enforce label length limits in URLs.
-
5.0.0-alpha.808 Jun 2022 pre-releaseRelease notes
Open source →2022-06-08
-
Fix: Change how
H2_PRIOR_KNOWLEDGEworks with HTTP proxies. Previously OkHttp assumed the proxy itself was a prior knowledge HTTP/2 server. With this update, OkHttp attempts aCONNECTtunnel just as it would with HTTPS. For prior knowledge with proxies OkHttp's is now consistent with these curl arguments:curl \ --http2-prior-knowledge \ --proxy localhost:8888 \ --proxytunnel \ http://squareup.com/robots.txt -
Fix: Support executing OkHttp on kotlin-stdlib versions as old as 1.4. The library still builds on up-to-date Kotlin releases (1.6.21) but no longer needs that version as a runtime dependency. This should make it easier to use OkHttp in Gradle plugins.
-
Fix: Don't start the clock on response timeouts until the request body is fully transmitted. This is only relevant for duplex request bodies, because they are written concurrently when reading the response body.
-
New:
MockResponse.inTunnel()is a newmockwebserver3API to configure responses that are served while creating a proxy tunnel. This obsoletes both thetunnelProxyargument onMockWebServerand theUPGRADE_TO_SSL_AT_ENDsocket option. (Only APIs onmockwebserver3are changed; the oldokhttp3.mockwebserverAPIs remain as they always have been.
-
-
5.0.0-alpha.727 Apr 2022 pre-releaseRelease notes
Open source →2022-04-26
This release introduces new Kotlin-friendly APIs. When we migrated OkHttp from Java to Kotlin in OkHttp 4.0, we kept our Java-first APIs. With 5.0 we're continuing to support Java and adding additional improvements for Kotlin users. In this alpha we're excited to skip-the-builder for requests and remove a common source of non-null assertions (
!!) on the response body.The alpha releases in the 5.0.0 series have production-quality code and an unstable API. We expect to make changes to the APIs introduced in 5.0.0-alpha.X. These releases are safe for production use and 'alpha' strictly signals that we're still experimenting with some new APIs. If you're eager for the fixes or features below, please upgrade.
-
New: Named and default parameters constructor for
Request:val request = Request( url = "https://cash.app/".toHttpUrl(), ) -
New:
Response.bodyis now non-null. This was generally the case in OkHttp 4.x, but the Kotlin type declaration was nullable to support rare cases like the body onResponse.cacheResponse,Response.networkResponse, andResponse.priorResponse. In such cases the body is now non-null, but attempts to read its content will fail. -
New: Kotlin-specific APIs for request tags. Kotlin language users can lookup tags with a type parameter only, like
request.tag<MyTagClass>(). -
New: MockWebServer has improved support for HTTP/1xx responses. Once you've migrated to the new
mockwebserver3package, there's a new field,MockResponse.informationalResponses. -
Fix: Don't interpret trailers as headers after an HTTP/100 response. This was a bug only when the HTTP response body itself is empty.
-
Fix: Don't crash when a fast fallback call has both a deferred connection and a held connection.
-
Fix:
OkHttpClientno longer implementsCloneable. It never should have; the class is immutable. This is left over from OkHttp 2.x (!) when that class was mutable. We're using the 5.x upgrade as an opportunity to remove very obsolete APIs. -
Fix: Recover gracefully when Android's
NativeCryptocrashes with"ssl == null". This occurs when OkHttp retrieves ALPN state on a closed connection. -
Upgrade: [Kotlin 1.6.21][kotlin_1_6_21].
-
Upgrade: [Okio 3.1.0][okio_3_1_0].
-
-
5.0.0-alpha.614 Mar 2022 pre-releaseRelease notes
Open source →2022-03-14
- Fix: Don't attempt to close pooled connections. We saw occasional fast fallback calls crash in the previous alpha due to an unexpected race.