@@ -5,6 +5,74 @@ Change Log
55
66See [ 4.x Change log] ( https://square.github.io/okhttp/changelogs/changelog_4x/ ) for the stable version changelogs.
77
8+ ## Version 5.0.0-alpha.17
9+
10+ _ 2025-06-29_
11+
12+ This release stabilizes many APIs for the imminent OkHttp 5.0.0 release.
13+
14+ * New: ` TrailersSource ` , a public API for HTTP trailers. Production callers shouldn't need this
15+ as the API to read response trailers is unchanged. Testers may use this new stable API to
16+ supply trailers for a ` Response ` .
17+
18+ * New: ` Path.asRequestBody() ` is now a non-experimental API.
19+
20+ * New: ` FileDescriptor.toRequestBody() ` is now a non-experimental API.
21+
22+ * New: Stop using experimental coroutines APIs in our ` okhttp-coroutines ` artifact.
23+
24+ * Breaking: Move ` gzip ` from ` RequestBody ` to ` Request.Builder ` . This new API handles both
25+ compressing the request body and also adding the corresponding ` Content-Encoding ` header. Note
26+ that this function is sensitive to when it is called: the response body must be supplied before
27+ it can be compressed.
28+
29+ * Breaking: Remove ` AddressPolicy ` , ` AsyncDns ` , and ` ConnectionListener ` from the public API. We
30+ intend to ship a public API for these features, but we don't want to hold OkHttp 5.0.0 until
31+ those APIs are stable.
32+
33+ * Fix: Change ` MockWebServer.close() ` to cancel ongoing calls that are blocked on a delay.
34+
35+ * Upgrade: [ Okio 3.13.0] [ okio_3_13_0 ] .
36+
37+ This release also stabilizes many APIs in the ` mockwebserver3 ` artifact that's new in 5.0.
38+
39+ * Breaking: ` RecordedRequest.body ` is now nullable. Null is used when the request does not have a
40+ body.
41+
42+ * Breaking: ` RecordedRequest.chunkSizes ` is now nullable. Null is used when the request does not
43+ use chunked encoding. This is different from an empty list - that indicates the request is
44+ chunked but has no data.
45+
46+ * Breaking: Replace ` SocketPolicy ` with a new type, ` SocketEffect ` . It splits triggers (request
47+ start, response body, etc.) from effects (closing the socket, closing the stream, etc.).
48+
49+ * Breaking: Rename ` RecordedRequest.sequenceNumber ` to ` exchangeIndex ` and introduce
50+ ` connectionIndex ` on that type. These properties may be useful when testing features like
51+ connection reuse.
52+
53+ * Breaking: Replace our parameters-based JUnit 5 extension with a new annotation, ` @StartStop ` .
54+ Put this annotation on a ` MockWebServer ` property and the extension will start it before your
55+ test executes and stop it after it completes. No further configuration is required.
56+
57+ ``` kotlin
58+ @StartStop val server = MockWebServer ()
59+ ```
60+
61+ * Breaking : Don ' t automatically start `MockWebServer` after calls to accessors like `port`. Now
62+ these accessors will throw an `IllegalStateException` if the service has not yet been started.
63+
64+ * Breaking: Decompose the `RecordedRequest.requestLine` into three properties, `method`, `target`,
65+ and `version`. This better suits HTTP/2 where the request line had to be synthesized from
66+ component headers.
67+
68+ * Breaking: Change `RecordedRequest.body` from a mutable `Buffer` to an immutable `ByteString`.
69+
70+ * Breaking: Adopt Okio' s new `Socket ` interface for `MockResponse .socketHandler`.
71+
72+ Note that any _Breaking_ changes above impact only APIs introduced in earlier 5.0 .0 - alpha releasees.
73+ We don' t break binary compatibility with non-alpha APIs.
74+
75+
876## Version 5.0.0-alpha.16
977
1078_2025-05-29_
@@ -531,6 +599,7 @@ release is the version name.
531599[okio_2_9_0]: https: // square.github.io/okio/changelog/#version-290
532600[okio_3_0_0]: https: // square.github.io/okio/changelog/#version-300
533601[okio_3_12_0]: https: // square.github.io/okio/changelog/#version-3120
602+ [okio_3_13_0]: https: // square.github.io/okio/changelog/#version-3130
534603[okio_3_1_0]: https: // square.github.io/okio/changelog/#version-310
535604[okio_3_2_0]: https: // square.github.io/okio/changelog/#version-320
536605[okio_3_7_0]: https: // square.github.io/okio/changelog/#version-370
0 commit comments