On Request.Builder the one function can add the header
and apply compression. Otherwise the caller needs to
keep those calls in sync.
One severe drawback of this approach is the calls to
Request.Builder are now ordered. If you call gzip()
before you call post(), it'll crash. Worse, if you
call post() and then gzip() and then post() again
with a different body, it'll silently not compress
the new body. I don't love this drawback but I think
the mitigations aren't worth the effort.
* Prepare to enable Spotless
I'm not super keen on any of these changes, but I am very
keen on having automatic formatting.
* Don't actually enable Spotless yet
Just hard-coding 'localhost' is simpler and avoids problems where
the host machine's IP address has additional DNS registrations.
Closes: https://github.com/square/okhttp/issues/7603
* Add a proper Kotlin constructor for Request
This turns out to be very useful throughout our test suite.
* Dump updated API
* Fix multipleTags Kotlin conversion
This is a source-incompatible API change. In particular, Response.body(null)
is no longer source-compatible for Kotlin source.
The upside is tremendous: no need for callers to use !! on Response.body
on every single API call. In the rare cases where a Response doesn't have
a body we use a runtime error. This is unlikely to cause problems in
practice; users don't have reason to read the response body on supporting
responses.
I attempted to do a literal translation as much as possible.
Subprojects now need plugins to be configured directly so they
can use the appropriate syntax.
Also rename okhttp3.mockwebserverwrapper to okhttp3.mockwebserver
Directories are not renamed to minimize the git diff. That'll follow
in a separate commit.
Most users of the API are not impacted. The ones that are:
- CallTest subclasses QueueDispatcher
- DuplexTest uses duplex APIs
- HttpOverHttp2Test subclasses QueueDispatcher
This is part 2 of the plan described here:
https://github.com/square/okhttp/pull/6326
The new ktlint sorts imports which makes this diff large.
The new japicmp ignores 'final' modifier changes in final classes.
We adopt the Google style for checkstyle.xml.
Okio readByteString() now uses segments more aggressively, so we
need to mitigate that to avoid tracking those segments in a test.