Fix: Degrade HTTP/2 connections after a timeout. When an HTTP/2 stream times out it may impact
the stream only or the entire connection. With this fix OkHttp will now send HTTP/2 pings after
a stream timeout to determine whether the connection should remain eligible for pooling.
Fix: Don't call EventListener.responseHeadersStart() or responseBodyStart() until bytes have
been received. Previously these events were incorrectly sent too early, when OkHttp was ready to
read the response headers or body, which mislead tracing tools. Note that the responseFailed()
event always used to follow one of these events; now it may be sent without them.
New: Upgrade to Kotlin 1.3.61.
New: Match any number of subdomains with two asterisks in CertificatePinner. For example,
**.squareup.com matches us-west.www.squareup.com, www.squareup.com and squareup.com.
New: Share threads more aggressively between OkHttp's HTTP/2 connections, connection pool,
web sockets, and cache. OkHttp has a new internal task runner abstraction for managed task
scheduling. In your debugger you will see new thread names and more use of daemon threads.
Fix: Don't drop callbacks on unexpected exceptions. When an interceptor throws an unchecked
exception the callback is now notified that the call was canceled. The exception is still sent
to the uncaught exception handler for reporting and recovery.
Fix: Un-deprecate MockResponse.setHeaders() and other setters. These were deprecated in OkHttp
4.0 but that broke method chaining for Java callers.
Fix: Don't crash on HTTP/2 HEAD requests when the Content-Length header is present but is not
consistent with the length of the response body.
Fix: Don't crash when converting a HttpUrl instance with an unresolvable hostname to a URI.
The new behavior strips invalid characters like " and { from the hostname before converting.
Fix: Undo a performance regression introduced in OkHttp 4.0 caused by differences in behavior
between Kotlin's assert() and Java's assert(). (Kotlin always evaluates the argument; Java
only does when assertions are enabled.)
Fix: Honor RequestBody.isOneShot() in HttpLoggingInterceptor.
Version 4.2.2
2019-10-06
Fix: When closing a canceled HTTP/2 stream, don't send the END_STREAM flag. This could cause
the server to incorrectly interpret the stream as having completed normally. This is most useful
when a request body needs to cancel its own call.
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
- `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language
- `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language
- `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language
- `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language
- `@dependabot badge me` will comment on this PR with code to add a "Dependabot enabled" badge to your readme
Additionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com):
- Update frequency (including time of day and day of week)
- Pull request limits (per update run and/or open at any time)
- Out-of-range updates (receive only lockfile updates, if desired)
- Security updates (receive only security updates, if desired)
Bumps okhttp from 3.10.0 to 4.3.0.
Changelog
Sourced from okhttp's changelog.
Commits
b63debd
Prepare for release 4.3.0.b2b2dd7
Merge pull request #5676 from square/jwilson.1231.restore_chaininga2c0607
Un-deprecate some setters for chaining from Javabf85d1b
Merge pull request #5195 from square/fix-content-length-of-http2-response-body62cf6c2
Merge pull request #5674 from square/jwilson.1231.stripbd675a8
Merge pull request #5671 from square/jwilson.1230.debug_logginga815093
Document debug logging.283418b
Fix a crash in HttpUrl.toUri().b9e0422
Merge pull request #5672 from square/jwilson.1230.await_idleedb5865
Fix crash on repeated MockWebServer shutdownDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) - `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language - `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language - `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language - `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language - `@dependabot badge me` will comment on this PR with code to add a "Dependabot enabled" badge to your readme Additionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com): - Update frequency (including time of day and day of week) - Pull request limits (per update run and/or open at any time) - Out-of-range updates (receive only lockfile updates, if desired) - Security updates (receive only security updates, if desired)