gitextract_j2sj9obc/ ├── .devcontainer/ │ └── devcontainer.json ├── .editorconfig ├── .gitattributes ├── .github/ │ ├── CONTRIBUTING.md │ ├── ISSUE_TEMPLATE/ │ │ ├── bug_report.md │ │ ├── feature_request.md │ │ └── question.md │ ├── renovate.json │ └── workflows/ │ ├── build.yml │ ├── containers.yml │ ├── docs.yml │ └── publish.yml ├── .gitignore ├── .gitmodules ├── .junit.run/ │ └── Not Slow.run.xml ├── .vscode/ │ └── settings.json ├── BUG-BOUNTY.md ├── CHANGELOG.md ├── CONTRIBUTING.md ├── LICENSE.txt ├── README.md ├── android-test/ │ ├── build.gradle.kts │ └── src/ │ ├── androidDeviceTest/ │ │ ├── README.md │ │ └── java/ │ │ └── okhttp/ │ │ └── android/ │ │ └── test/ │ │ ├── OkHttpTest.kt │ │ ├── SingleAndroidTest.kt │ │ ├── StrictModeTest.kt │ │ ├── alpn/ │ │ │ └── AlpnOverrideTest.kt │ │ ├── letsencrypt/ │ │ │ └── LetsEncryptClientTest.kt │ │ └── sni/ │ │ └── SniOverrideTest.kt │ ├── main/ │ │ ├── AndroidManifest.xml │ │ └── res/ │ │ ├── values/ │ │ │ └── strings.xml │ │ └── xml/ │ │ └── network_security_config.xml │ └── test/ │ └── kotlin/ │ └── okhttp/ │ └── android/ │ └── test/ │ ├── AndroidLoggingTest.kt │ ├── AndroidSocketAdapterTest.kt │ ├── BaseOkHttpClientUnitTest.kt │ ├── DisabledInitialiserTest.kt │ ├── NonRobolectricOkHttpClientTest.kt │ ├── RobolectricOkHttpClientTest.kt │ └── ShadowDnsResolver.kt ├── android-test-app/ │ ├── build.gradle.kts │ ├── proguard-rules.pro │ ├── src/ │ │ ├── androidTest/ │ │ │ └── kotlin/ │ │ │ └── okhttp/ │ │ │ └── android/ │ │ │ └── testapp/ │ │ │ ├── IdnaTest.kt │ │ │ └── PublicSuffixDatabaseTest.kt │ │ └── main/ │ │ ├── AndroidManifest.xml │ │ ├── kotlin/ │ │ │ └── okhttp/ │ │ │ └── android/ │ │ │ └── testapp/ │ │ │ ├── MainActivity.kt │ │ │ ├── MainActivity2.kt │ │ │ └── TestApplication.kt │ │ └── res/ │ │ ├── values/ │ │ │ └── strings.xml │ │ └── xml/ │ │ └── network_security_config.xml │ └── test-proguard-rules.pro ├── build-logic/ │ ├── build.gradle.kts │ ├── settings.gradle.kts │ └── src/ │ └── main/ │ └── kotlin/ │ ├── AlpnVersions.kt │ ├── BndBuildAction.kt │ ├── JavaModules.kt │ ├── Osgi.kt │ ├── okhttp.base-conventions.gradle.kts │ ├── okhttp.dokka-multimodule-conventions.gradle.kts │ ├── okhttp.jvm-conventions.gradle.kts │ ├── okhttp.publish-conventions.gradle.kts │ ├── okhttp.quality-conventions.gradle.kts │ ├── okhttp.testing-conventions.gradle.kts │ └── okhttp3/ │ └── buildsupport/ │ └── OkHttpBuildUtils.kt ├── build.gradle.kts ├── container-tests/ │ ├── README.md │ ├── build.gradle.kts │ └── src/ │ └── test/ │ └── java/ │ └── okhttp3/ │ └── containers/ │ ├── BasicLoomTest.kt │ ├── BasicMockServerTest.kt │ ├── BasicProxyTest.kt │ └── SocksProxyTest.kt ├── deploy_website.sh ├── docs/ │ ├── assets/ │ │ └── css/ │ │ └── app.css │ ├── changelogs/ │ │ ├── changelog_1x.md │ │ ├── changelog_2x.md │ │ ├── changelog_3x.md │ │ ├── changelog_4x.md │ │ └── upgrading_to_okhttp_4.md │ ├── contribute/ │ │ ├── code_of_conduct.md │ │ ├── concurrency.md │ │ ├── contributing.md │ │ └── debug_logging.md │ ├── features/ │ │ ├── caching.md │ │ ├── calls.md │ │ ├── connections.md │ │ ├── events.md │ │ ├── https.md │ │ ├── interceptors.md │ │ └── r8_proguard.md │ ├── recipes.md │ ├── releasing.md │ ├── security/ │ │ ├── security.md │ │ ├── security_providers.md │ │ └── tls_configuration_history.md │ └── works_with_okhttp.md ├── fuzzing/ │ ├── fuzzingserver-config.json │ ├── fuzzingserver-expected.txt │ ├── fuzzingserver-test.sh │ └── fuzzingserver-update-expected.sh ├── gradle/ │ ├── gradle-daemon-jvm.properties │ ├── libs.versions.toml │ └── wrapper/ │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradle.properties ├── gradlew ├── gradlew.bat ├── maven-tests/ │ ├── .gitignore │ ├── .mvn/ │ │ ├── jvm.config │ │ ├── maven.config │ │ └── wrapper/ │ │ └── maven-wrapper.properties │ ├── mvnw │ ├── mvnw.cmd │ ├── pom.xml │ └── src/ │ ├── main/ │ │ └── java/ │ │ └── com/ │ │ └── squareup/ │ │ └── okhttp3/ │ │ └── maventest/ │ │ └── SampleHttpClient.java │ └── test/ │ └── java/ │ └── com/ │ └── squareup/ │ └── okhttp3/ │ └── maventest/ │ └── AppTest.java ├── mkdocs.yml ├── mockwebserver/ │ ├── Module.md │ ├── README.md │ ├── api/ │ │ └── mockwebserver3.api │ ├── build.gradle.kts │ └── src/ │ ├── main/ │ │ ├── java9/ │ │ │ └── module-info.java │ │ └── kotlin/ │ │ └── mockwebserver3/ │ │ ├── Dispatcher.kt │ │ ├── MockResponse.kt │ │ ├── MockResponseBody.kt │ │ ├── MockWebServer.kt │ │ ├── PushPromise.kt │ │ ├── QueueDispatcher.kt │ │ ├── RecordedRequest.kt │ │ ├── SocketEffect.kt │ │ ├── SocketHandler.kt │ │ └── internal/ │ │ ├── BufferMockResponseBody.kt │ │ ├── MockWebServerSocket.kt │ │ ├── RecordedRequestFactory.kt │ │ ├── ThrottledSink.kt │ │ └── TriggerSink.kt │ └── test/ │ └── java/ │ └── mockwebserver3/ │ ├── CustomDispatcherTest.kt │ ├── MockResponseSniTest.kt │ ├── MockWebServerTest.kt │ ├── RecordedRequestTest.kt │ └── internal/ │ └── http2/ │ └── Http2Server.kt ├── mockwebserver-deprecated/ │ ├── api/ │ │ └── mockwebserver.api │ ├── build.gradle.kts │ └── src/ │ ├── main/ │ │ ├── java9/ │ │ │ └── module-info.java │ │ └── kotlin/ │ │ └── okhttp3/ │ │ └── mockwebserver/ │ │ ├── DeprecationBridge.kt │ │ ├── Dispatcher.kt │ │ ├── MockResponse.kt │ │ ├── MockWebServer.kt │ │ ├── PushPromise.kt │ │ ├── QueueDispatcher.kt │ │ ├── RecordedRequest.kt │ │ └── SocketPolicy.kt │ └── test/ │ └── java/ │ └── okhttp3/ │ └── mockwebserver/ │ ├── KotlinSourceModernTest.kt │ └── MockWebServerTest.kt ├── mockwebserver-junit4/ │ ├── README.md │ ├── api/ │ │ └── mockwebserver3-junit4.api │ ├── build.gradle.kts │ └── src/ │ ├── main/ │ │ ├── java9/ │ │ │ └── module-info.java │ │ └── kotlin/ │ │ └── mockwebserver3/ │ │ └── junit4/ │ │ └── MockWebServerRule.kt │ └── test/ │ └── java/ │ └── mockwebserver3/ │ └── junit4/ │ └── MockWebServerRuleTest.kt ├── mockwebserver-junit5/ │ ├── README.md │ ├── api/ │ │ └── mockwebserver3-junit5.api │ ├── build.gradle.kts │ └── src/ │ ├── main/ │ │ ├── java9/ │ │ │ └── module-info.java │ │ └── kotlin/ │ │ └── mockwebserver3/ │ │ └── junit5/ │ │ ├── StartStop.kt │ │ └── internal/ │ │ └── StartStopExtension.kt │ └── test/ │ └── java/ │ └── mockwebserver3/ │ └── junit5/ │ └── StartStopTest.kt ├── module-tests/ │ ├── build.gradle.kts │ └── src/ │ ├── main/ │ │ └── java/ │ │ ├── module-info.java │ │ └── okhttp3/ │ │ └── modules/ │ │ ├── Main.java │ │ └── OkHttpCaller.java │ └── test/ │ └── java/ │ ├── module-info.java │ └── okhttp3/ │ └── modules/ │ └── test/ │ └── JavaModuleTest.java ├── native-image-tests/ │ ├── README.md │ ├── build.gradle.kts │ └── src/ │ └── test/ │ ├── kotlin/ │ │ └── okhttp3/ │ │ └── nativeimage/ │ │ ├── PublicSuffixDatabaseTest.kt │ │ ├── SampleTest.kt │ │ └── WithArgumentSourceTest.kt │ └── resources/ │ └── META-INF/ │ └── native-image/ │ └── okhttp/ │ └── nit/ │ └── resource-config.json ├── okcurl/ │ ├── README.md │ ├── build.gradle.kts │ ├── okcurl │ └── src/ │ ├── main/ │ │ ├── kotlin/ │ │ │ └── okhttp3/ │ │ │ └── curl/ │ │ │ ├── Main.kt │ │ │ ├── MainCommandLine.kt │ │ │ ├── internal/ │ │ │ │ └── -MainCommon.kt │ │ │ └── logging/ │ │ │ ├── LoggingUtil.kt │ │ │ ├── MessageFormatter.kt │ │ │ └── OneLineLogFormat.kt │ │ ├── resources/ │ │ │ └── META-INF/ │ │ │ └── native-image/ │ │ │ └── okhttp3/ │ │ │ └── okcurl/ │ │ │ ├── reflect-config.json │ │ │ └── resource-config.json │ │ └── resources-templates/ │ │ └── okcurl-version.properties │ └── test/ │ └── kotlin/ │ └── okhttp3/ │ └── curl/ │ └── MainTest.kt ├── okhttp/ │ ├── Module.md │ ├── api/ │ │ ├── android/ │ │ │ └── okhttp.api │ │ └── jvm/ │ │ └── okhttp.api │ ├── build.gradle.kts │ ├── okhttp3.pro │ └── src/ │ ├── androidHostTest/ │ │ ├── kotlin/ │ │ │ └── okhttp3/ │ │ │ └── internal/ │ │ │ └── publicsuffix/ │ │ │ └── PublicSuffixTesting.android.kt │ │ └── resources/ │ │ └── okhttp3/ │ │ └── robolectric.properties │ ├── androidMain/ │ │ ├── AndroidManifest.xml │ │ ├── assets/ │ │ │ └── PublicSuffixDatabase.list │ │ ├── baseline-prof.txt │ │ └── kotlin/ │ │ └── okhttp3/ │ │ ├── OkHttp.android.kt │ │ └── internal/ │ │ ├── platform/ │ │ │ ├── Android10Platform.kt │ │ │ ├── AndroidPlatform.kt │ │ │ ├── ContextAwarePlatform.kt │ │ │ ├── PlatformInitializer.kt │ │ │ ├── PlatformRegistry.kt │ │ │ └── android/ │ │ │ ├── Android10SocketAdapter.kt │ │ │ ├── AndroidCertificateChainCleaner.kt │ │ │ ├── AndroidLog.kt │ │ │ ├── AndroidSocketAdapter.kt │ │ │ ├── BouncyCastleSocketAdapter.kt │ │ │ ├── ConscryptSocketAdapter.kt │ │ │ ├── DeferredSocketAdapter.kt │ │ │ ├── SocketAdapter.kt │ │ │ └── StandardAndroidSocketAdapter.kt │ │ └── publicsuffix/ │ │ ├── AssetPublicSuffixList.kt │ │ └── PublicSuffixList.android.kt │ ├── commonJvmAndroid/ │ │ ├── kotlin/ │ │ │ └── okhttp3/ │ │ │ ├── Address.kt │ │ │ ├── Authenticator.kt │ │ │ ├── Cache.kt │ │ │ ├── CacheControl.kt │ │ │ ├── Call.kt │ │ │ ├── Callback.kt │ │ │ ├── CertificatePinner.kt │ │ │ ├── Challenge.kt │ │ │ ├── CipherSuite.kt │ │ │ ├── CompressionInterceptor.kt │ │ │ ├── Connection.kt │ │ │ ├── ConnectionPool.kt │ │ │ ├── ConnectionSpec.kt │ │ │ ├── Cookie.kt │ │ │ ├── CookieJar.kt │ │ │ ├── Credentials.kt │ │ │ ├── Dispatcher.kt │ │ │ ├── Dns.kt │ │ │ ├── EventListener.kt │ │ │ ├── FormBody.kt │ │ │ ├── Gzip.kt │ │ │ ├── Handshake.kt │ │ │ ├── Headers.kt │ │ │ ├── HttpUrl.kt │ │ │ ├── Interceptor.kt │ │ │ ├── MediaType.kt │ │ │ ├── MultipartBody.kt │ │ │ ├── MultipartReader.kt │ │ │ ├── OkHttp.kt │ │ │ ├── OkHttpClient.kt │ │ │ ├── Protocol.kt │ │ │ ├── Request.kt │ │ │ ├── RequestBody.kt │ │ │ ├── Response.kt │ │ │ ├── ResponseBody.kt │ │ │ ├── Route.kt │ │ │ ├── TlsVersion.kt │ │ │ ├── TrailersSource.kt │ │ │ ├── WebSocket.kt │ │ │ ├── WebSocketListener.kt │ │ │ └── internal/ │ │ │ ├── -CacheControlCommon.kt │ │ │ ├── -HeadersCommon.kt │ │ │ ├── -HostnamesCommon.kt │ │ │ ├── -NormalizeJvm.kt │ │ │ ├── -UtilCommon.kt │ │ │ ├── -UtilJvm.kt │ │ │ ├── IsProbablyUtf8.kt │ │ │ ├── NativeImageTestsAccessors.kt │ │ │ ├── SuppressSignatureCheck.kt │ │ │ ├── Tags.kt │ │ │ ├── UnreadableResponseBody.kt │ │ │ ├── authenticator/ │ │ │ │ └── JavaNetAuthenticator.kt │ │ │ ├── cache/ │ │ │ │ ├── CacheInterceptor.kt │ │ │ │ ├── CacheRequest.kt │ │ │ │ ├── CacheStrategy.kt │ │ │ │ ├── DiskLruCache.kt │ │ │ │ └── FaultHidingSink.kt │ │ │ ├── concurrent/ │ │ │ │ ├── Lockable.kt │ │ │ │ ├── Task.kt │ │ │ │ ├── TaskLogger.kt │ │ │ │ ├── TaskQueue.kt │ │ │ │ └── TaskRunner.kt │ │ │ ├── connection/ │ │ │ │ ├── AddressPolicy.kt │ │ │ │ ├── BufferedSocket.kt │ │ │ │ ├── ConnectInterceptor.kt │ │ │ │ ├── ConnectPlan.kt │ │ │ │ ├── ConnectionListener.kt │ │ │ │ ├── Exchange.kt │ │ │ │ ├── ExchangeFinder.kt │ │ │ │ ├── FailedPlan.kt │ │ │ │ ├── FastFallbackExchangeFinder.kt │ │ │ │ ├── ForceConnectRoutePlanner.kt │ │ │ │ ├── InetAddressOrder.kt │ │ │ │ ├── RealCall.kt │ │ │ │ ├── RealConnection.kt │ │ │ │ ├── RealConnectionPool.kt │ │ │ │ ├── RealRoutePlanner.kt │ │ │ │ ├── RetryTlsHandshake.kt │ │ │ │ ├── ReusePlan.kt │ │ │ │ ├── RouteDatabase.kt │ │ │ │ ├── RoutePlanner.kt │ │ │ │ ├── RouteSelector.kt │ │ │ │ └── SequentialExchangeFinder.kt │ │ │ ├── http/ │ │ │ │ ├── BridgeInterceptor.kt │ │ │ │ ├── CallServerInterceptor.kt │ │ │ │ ├── DateFormatting.kt │ │ │ │ ├── ExchangeCodec.kt │ │ │ │ ├── GzipRequestBody.kt │ │ │ │ ├── HttpHeaders.kt │ │ │ │ ├── HttpMethod.kt │ │ │ │ ├── HttpStatusCodes.kt │ │ │ │ ├── RealInterceptorChain.kt │ │ │ │ ├── RealResponseBody.kt │ │ │ │ ├── RequestLine.kt │ │ │ │ ├── RetryAndFollowUpInterceptor.kt │ │ │ │ └── StatusLine.kt │ │ │ ├── http1/ │ │ │ │ ├── HeadersReader.kt │ │ │ │ └── Http1ExchangeCodec.kt │ │ │ ├── http2/ │ │ │ │ ├── ConnectionShutdownException.kt │ │ │ │ ├── ErrorCode.kt │ │ │ │ ├── FlowControlListener.kt │ │ │ │ ├── Header.kt │ │ │ │ ├── Hpack.kt │ │ │ │ ├── Http2.kt │ │ │ │ ├── Http2Connection.kt │ │ │ │ ├── Http2ExchangeCodec.kt │ │ │ │ ├── Http2Reader.kt │ │ │ │ ├── Http2Stream.kt │ │ │ │ ├── Http2Writer.kt │ │ │ │ ├── Huffman.kt │ │ │ │ ├── PushObserver.kt │ │ │ │ ├── Settings.kt │ │ │ │ ├── StreamResetException.kt │ │ │ │ └── flowcontrol/ │ │ │ │ └── WindowCounter.kt │ │ │ ├── idn/ │ │ │ │ ├── IdnaMappingTable.kt │ │ │ │ └── Punycode.kt │ │ │ ├── internal.kt │ │ │ ├── platform/ │ │ │ │ ├── Jdk9Platform.kt │ │ │ │ ├── Platform.kt │ │ │ │ └── PlatformRegistry.kt │ │ │ ├── proxy/ │ │ │ │ └── NullProxySelector.kt │ │ │ ├── publicsuffix/ │ │ │ │ ├── BasePublicSuffixList.kt │ │ │ │ ├── PublicSuffixDatabase.kt │ │ │ │ ├── PublicSuffixList.kt │ │ │ │ └── ResourcePublicSuffixList.kt │ │ │ ├── tls/ │ │ │ │ ├── BasicCertificateChainCleaner.kt │ │ │ │ ├── BasicTrustRootIndex.kt │ │ │ │ ├── CertificateChainCleaner.kt │ │ │ │ ├── OkHostnameVerifier.kt │ │ │ │ └── TrustRootIndex.kt │ │ │ ├── url/ │ │ │ │ └── -Url.kt │ │ │ └── ws/ │ │ │ ├── MessageDeflater.kt │ │ │ ├── MessageInflater.kt │ │ │ ├── RealWebSocket.kt │ │ │ ├── WebSocketExtensions.kt │ │ │ ├── WebSocketProtocol.kt │ │ │ ├── WebSocketReader.kt │ │ │ └── WebSocketWriter.kt │ │ └── kotlinTemplates/ │ │ └── okhttp3/ │ │ └── internal/ │ │ └── -InternalVersion.kt │ ├── commonTest/ │ │ └── kotlin/ │ │ └── okhttp3/ │ │ ├── CompressionInterceptorTest.kt │ │ ├── OkHttpTest.kt │ │ └── internal/ │ │ ├── IsProbablyUtf8Test.kt │ │ └── publicsuffix/ │ │ ├── ConfiguredPublicSuffixDatabaseTest.kt │ │ ├── ConfiguredPublicSuffixList.kt │ │ ├── PublicSuffixDatabaseTest.kt │ │ └── PublicSuffixTesting.kt │ ├── jvmMain/ │ │ ├── java9/ │ │ │ └── module-info.java │ │ ├── kotlin/ │ │ │ └── okhttp3/ │ │ │ ├── OkHttp.jvm.kt │ │ │ └── internal/ │ │ │ ├── graal/ │ │ │ │ ├── GraalSvm.kt │ │ │ │ └── OkHttpFeature.kt │ │ │ ├── platform/ │ │ │ │ ├── BouncyCastlePlatform.kt │ │ │ │ ├── ConscryptPlatform.kt │ │ │ │ ├── Jdk8WithJettyBootPlatform.kt │ │ │ │ ├── OpenJSSEPlatform.kt │ │ │ │ └── PlatformRegistry.kt │ │ │ └── publicsuffix/ │ │ │ └── PublicSuffixList.jvm.kt │ │ └── resources/ │ │ ├── META-INF/ │ │ │ └── native-image/ │ │ │ └── okhttp/ │ │ │ └── okhttp/ │ │ │ ├── native-image.properties │ │ │ ├── reflect-config.json │ │ │ └── resource-config.json │ │ └── okhttp3/ │ │ └── internal/ │ │ └── publicsuffix/ │ │ └── PublicSuffixDatabase.list │ ├── jvmTest/ │ │ ├── java/ │ │ │ └── okhttp3/ │ │ │ └── CallJavaTest.java │ │ ├── kotlin/ │ │ │ └── okhttp3/ │ │ │ ├── AddressTest.kt │ │ │ ├── AutobahnTester.kt │ │ │ ├── BouncyCastleTest.kt │ │ │ ├── CacheControlJvmTest.kt │ │ │ ├── CacheControlTest.kt │ │ │ ├── CacheCorruptionTest.kt │ │ │ ├── CacheTest.kt │ │ │ ├── CallHandshakeTest.kt │ │ │ ├── CallKotlinTest.kt │ │ │ ├── CallLimitsTest.kt │ │ │ ├── CallTagsTest.kt │ │ │ ├── CallTest.kt │ │ │ ├── CertificateChainCleanerTest.kt │ │ │ ├── CertificatePinnerKotlinTest.kt │ │ │ ├── CertificatePinnerTest.kt │ │ │ ├── ChannelSocketFactory.kt │ │ │ ├── CipherSuiteTest.kt │ │ │ ├── CommonRequestBodyTest.kt │ │ │ ├── ConnectionCoalescingTest.kt │ │ │ ├── ConnectionListenerTest.kt │ │ │ ├── ConnectionReuseTest.kt │ │ │ ├── ConnectionSpecTest.kt │ │ │ ├── ConscryptTest.kt │ │ │ ├── CookieTest.kt │ │ │ ├── CookiesTest.kt │ │ │ ├── CorrettoTest.kt │ │ │ ├── DispatcherCleanupTest.kt │ │ │ ├── DispatcherTest.kt │ │ │ ├── DuplexTest.kt │ │ │ ├── EventListenerTest.kt │ │ │ ├── FakeRoutePlanner.kt │ │ │ ├── FallbackTestClientSocketFactory.kt │ │ │ ├── FastFallbackTest.kt │ │ │ ├── FormBodyTest.kt │ │ │ ├── HandshakeTest.kt │ │ │ ├── HeadersChallengesTest.kt │ │ │ ├── HeadersJvmTest.kt │ │ │ ├── HeadersKotlinTest.kt │ │ │ ├── HeadersRequestTest.kt │ │ │ ├── HeadersTest.kt │ │ │ ├── HttpUrlJvmTest.kt │ │ │ ├── HttpUrlTest.kt │ │ │ ├── InsecureForHostTest.kt │ │ │ ├── InterceptorOverridesTest.kt │ │ │ ├── InterceptorTest.kt │ │ │ ├── JSSETest.kt │ │ │ ├── KotlinDeprecationErrorTest.kt │ │ │ ├── KotlinSourceModernTest.kt │ │ │ ├── LoomTest.kt │ │ │ ├── MediaTypeGetTest.kt │ │ │ ├── MediaTypeJvmTest.kt │ │ │ ├── MediaTypeTest.kt │ │ │ ├── MultipartBodyTest.kt │ │ │ ├── MultipartReaderTest.kt │ │ │ ├── OkHttpClientTest.kt │ │ │ ├── OpenJSSETest.kt │ │ │ ├── ProtocolTest.kt │ │ │ ├── PublicInternalApiTest.kt │ │ │ ├── RecordedResponse.kt │ │ │ ├── RecordingCallback.kt │ │ │ ├── RecordingExecutor.kt │ │ │ ├── RequestBodyTest.kt │ │ │ ├── RequestCommonTest.kt │ │ │ ├── RequestTest.kt │ │ │ ├── ResponseBodyJvmTest.kt │ │ │ ├── ResponseBodyTest.kt │ │ │ ├── ResponseCommonTest.kt │ │ │ ├── ResponseJvmTest.kt │ │ │ ├── RouteFailureTest.kt │ │ │ ├── ServerTruncatesRequestTest.kt │ │ │ ├── SessionReuseTest.kt │ │ │ ├── SocketChannelTest.kt │ │ │ ├── SocksProxy.kt │ │ │ ├── SocksProxyTest.kt │ │ │ ├── TestLogHandler.kt │ │ │ ├── TestTls13Request.kt │ │ │ ├── TrailersTest.kt │ │ │ ├── URLConnectionTest.kt │ │ │ ├── UrlComponentEncodingTester.kt │ │ │ ├── UrlComponentEncodingTesterJvm.kt │ │ │ ├── WebPlatformToAsciiData.kt │ │ │ ├── WebPlatformToAsciiTest.kt │ │ │ ├── WebPlatformUrlTest.kt │ │ │ ├── WebPlatformUrlTestData.kt │ │ │ ├── WholeOperationTimeoutTest.kt │ │ │ └── internal/ │ │ │ ├── DoubleInetAddressDns.kt │ │ │ ├── HostnamesTest.kt │ │ │ ├── RecordingAuthenticator.kt │ │ │ ├── TagsTest.kt │ │ │ ├── UtilTest.kt │ │ │ ├── authenticator/ │ │ │ │ └── JavaNetAuthenticatorTest.kt │ │ │ ├── cache/ │ │ │ │ └── DiskLruCacheTest.kt │ │ │ ├── concurrent/ │ │ │ │ ├── TaskLoggerTest.kt │ │ │ │ ├── TaskRunnerRealBackendTest.kt │ │ │ │ └── TaskRunnerTest.kt │ │ │ ├── connection/ │ │ │ │ ├── ConnectionPoolTest.kt │ │ │ │ ├── FastFallbackExchangeFinderTest.kt │ │ │ │ ├── InetAddressOrderTest.kt │ │ │ │ ├── RetryConnectionTest.kt │ │ │ │ └── RouteSelectorTest.kt │ │ │ ├── http/ │ │ │ │ ├── CancelTest.kt │ │ │ │ ├── ExternalHttp2Example.kt │ │ │ │ ├── HttpDateTest.kt │ │ │ │ ├── HttpUpgradesTest.kt │ │ │ │ ├── SocketFailureTest.kt │ │ │ │ ├── StatusLineTest.kt │ │ │ │ └── ThreadInterruptTest.kt │ │ │ ├── http2/ │ │ │ │ ├── BaseTestHandler.kt │ │ │ │ ├── FrameLogTest.kt │ │ │ │ ├── HpackTest.kt │ │ │ │ ├── Http2ConnectionTest.kt │ │ │ │ ├── Http2Test.kt │ │ │ │ ├── HttpOverHttp2Test.kt │ │ │ │ ├── HuffmanTest.kt │ │ │ │ ├── MockHttp2Peer.kt │ │ │ │ └── SettingsTest.kt │ │ │ ├── idn/ │ │ │ │ ├── IdnaMappingTableTest.kt │ │ │ │ └── PunycodeTest.kt │ │ │ ├── io/ │ │ │ │ └── FaultyFileSystem.kt │ │ │ ├── platform/ │ │ │ │ ├── Jdk8WithJettyBootPlatformTest.kt │ │ │ │ ├── Jdk9PlatformTest.kt │ │ │ │ └── PlatformTest.kt │ │ │ ├── publicsuffix/ │ │ │ │ ├── PublicSuffixListGenerator.kt │ │ │ │ └── PublicSuffixTesting.jvm.kt │ │ │ ├── tls/ │ │ │ │ ├── CertificatePinnerChainValidationTest.kt │ │ │ │ ├── ClientAuthTest.kt │ │ │ │ └── HostnameVerifierTest.kt │ │ │ └── ws/ │ │ │ ├── MessageDeflaterInflaterTest.kt │ │ │ ├── RealWebSocketTest.kt │ │ │ ├── WebSocketExtensionsTest.kt │ │ │ ├── WebSocketHttpTest.kt │ │ │ ├── WebSocketReaderTest.kt │ │ │ ├── WebSocketRecorder.kt │ │ │ └── WebSocketWriterTest.kt │ │ └── resources/ │ │ ├── okhttp3/ │ │ │ └── internal/ │ │ │ └── publicsuffix/ │ │ │ └── NOTICE │ │ ├── web-platform-test-toascii.json │ │ └── web-platform-test-urltestdata.txt │ └── main/ │ └── resources/ │ └── META-INF/ │ └── native-image/ │ └── okhttp/ │ └── okhttp/ │ └── native-image.properties ├── okhttp-bom/ │ └── build.gradle.kts ├── okhttp-brotli/ │ ├── README.md │ ├── api/ │ │ └── okhttp-brotli.api │ ├── build.gradle.kts │ └── src/ │ ├── main/ │ │ ├── java9/ │ │ │ └── module-info.java │ │ └── kotlin/ │ │ └── okhttp3/ │ │ └── brotli/ │ │ ├── Brotli.kt │ │ └── BrotliInterceptor.kt │ └── test/ │ └── java/ │ └── okhttp3/ │ └── brotli/ │ ├── BrotliInterceptorTest.kt │ └── BrotliTestMain.kt ├── okhttp-coroutines/ │ ├── Module.md │ ├── README.md │ ├── api/ │ │ └── okhttp-coroutines.api │ ├── build.gradle.kts │ └── src/ │ ├── main/ │ │ ├── java9/ │ │ │ └── module-info.java │ │ └── kotlin/ │ │ └── okhttp3/ │ │ └── coroutines/ │ │ └── ExecuteAsync.kt │ └── test/ │ └── kotlin/ │ └── okhttp3/ │ └── coroutines/ │ └── ExecuteAsyncTest.kt ├── okhttp-dnsoverhttps/ │ ├── README.md │ ├── api/ │ │ └── okhttp-dnsoverhttps.api │ ├── build.gradle.kts │ └── src/ │ ├── main/ │ │ ├── java9/ │ │ │ └── module-info.java │ │ └── kotlin/ │ │ └── okhttp3/ │ │ └── dnsoverhttps/ │ │ ├── BootstrapDns.kt │ │ ├── DnsOverHttps.kt │ │ └── DnsRecordCodec.kt │ └── test/ │ └── java/ │ └── okhttp3/ │ └── dnsoverhttps/ │ ├── DnsOverHttpsTest.kt │ ├── DnsRecordCodecTest.kt │ ├── DohProviders.kt │ └── TestDohMain.kt ├── okhttp-hpacktests/ │ ├── README.md │ ├── build.gradle.kts │ └── src/ │ └── test/ │ └── java/ │ └── okhttp3/ │ └── internal/ │ └── http2/ │ ├── HpackDecodeInteropTest.kt │ ├── HpackDecodeTestBase.kt │ ├── HpackRoundTripTest.kt │ └── hpackjson/ │ ├── Case.kt │ ├── HpackJsonUtil.kt │ └── Story.kt ├── okhttp-idna-mapping-table/ │ ├── README.md │ ├── build.gradle.kts │ └── src/ │ ├── main/ │ │ ├── kotlin/ │ │ │ └── okhttp3/ │ │ │ └── internal/ │ │ │ └── idn/ │ │ │ ├── GenerateIdnaMappingTableCode.kt │ │ │ ├── IdnaMappingTableData.kt │ │ │ ├── MappedRange.kt │ │ │ ├── MappingTables.kt │ │ │ └── SimpleIdnaMappingTable.kt │ │ └── resources/ │ │ └── okhttp3/ │ │ └── internal/ │ │ └── idna/ │ │ └── IdnaMappingTable.txt │ └── test/ │ └── kotlin/ │ └── okhttp3/ │ └── internal/ │ └── idn/ │ └── MappingTablesTest.kt ├── okhttp-java-net-cookiejar/ │ ├── README.md │ ├── api/ │ │ └── okhttp-java-net-cookiejar.api │ ├── build.gradle.kts │ └── src/ │ └── main/ │ ├── java9/ │ │ └── module-info.java │ └── kotlin/ │ └── okhttp3/ │ └── java/ │ └── net/ │ └── cookiejar/ │ └── JavaNetCookieJar.kt ├── okhttp-logging-interceptor/ │ ├── Module.md │ ├── README.md │ ├── api/ │ │ └── logging-interceptor.api │ ├── build.gradle.kts │ └── src/ │ ├── main/ │ │ ├── java9/ │ │ │ └── module-info.java │ │ └── kotlin/ │ │ └── okhttp3/ │ │ └── logging/ │ │ ├── HttpLoggingInterceptor.kt │ │ └── LoggingEventListener.kt │ └── test/ │ └── java/ │ └── okhttp3/ │ └── logging/ │ ├── HttpLoggingInterceptorTest.kt │ └── LoggingEventListenerTest.kt ├── okhttp-osgi-tests/ │ ├── build.gradle.kts │ └── src/ │ └── test/ │ └── kotlin/ │ └── okhttp3/ │ └── osgi/ │ └── OsgiTest.kt ├── okhttp-sse/ │ ├── Module.md │ ├── README.md │ ├── api/ │ │ └── okhttp-sse.api │ ├── build.gradle.kts │ └── src/ │ ├── main/ │ │ ├── java9/ │ │ │ └── module-info.java │ │ └── kotlin/ │ │ └── okhttp3/ │ │ └── sse/ │ │ ├── EventSource.kt │ │ ├── EventSourceListener.kt │ │ ├── EventSources.kt │ │ └── internal/ │ │ ├── RealEventSource.kt │ │ └── ServerSentEventReader.kt │ └── test/ │ └── java/ │ └── okhttp3/ │ └── sse/ │ └── internal/ │ ├── Event.kt │ ├── EventSourceHttpTest.kt │ ├── EventSourceRecorder.kt │ ├── EventSourcesHttpTest.kt │ └── ServerSentEventIteratorTest.kt ├── okhttp-testing-support/ │ ├── README.md │ ├── build.gradle.kts │ └── src/ │ ├── main/ │ │ ├── kotlin/ │ │ │ └── okhttp3/ │ │ │ ├── CallEvent.kt │ │ │ ├── ClientRuleEventListener.kt │ │ │ ├── ConnectionEvent.kt │ │ │ ├── DelegatingSSLSession.kt │ │ │ ├── DelegatingSSLSocket.kt │ │ │ ├── DelegatingSSLSocketFactory.kt │ │ │ ├── DelegatingServerSocketFactory.kt │ │ │ ├── DelegatingSocketFactory.kt │ │ │ ├── EventListenerAdapter.kt │ │ │ ├── EventListenerRelay.kt │ │ │ ├── EventRecorder.kt │ │ │ ├── FailingCall.kt │ │ │ ├── FakeDns.kt │ │ │ ├── FakeProxySelector.kt │ │ │ ├── FakeSSLSession.kt │ │ │ ├── ForwardingRequestBody.kt │ │ │ ├── ForwardingResponseBody.kt │ │ │ ├── JsseDebugLogging.kt │ │ │ ├── OkHttpClientTestRule.kt │ │ │ ├── OkHttpDebugLogging.kt │ │ │ ├── RecordingConnectionListener.kt │ │ │ ├── RecordingCookieJar.kt │ │ │ ├── RecordingHostnameVerifier.kt │ │ │ ├── SimpleProvider.kt │ │ │ ├── SpecificHostSocketFactory.kt │ │ │ ├── TestUtilCommon.kt │ │ │ ├── TestUtilJvm.kt │ │ │ ├── TestValueFactory.kt │ │ │ ├── UppercaseRequestInterceptor.kt │ │ │ ├── UppercaseResponseInterceptor.kt │ │ │ ├── internal/ │ │ │ │ ├── RecordingOkAuthenticator.kt │ │ │ │ ├── concurrent/ │ │ │ │ │ └── TaskFaker.kt │ │ │ │ ├── duplex/ │ │ │ │ │ ├── AsyncRequestBody.kt │ │ │ │ │ └── MockSocketHandler.kt │ │ │ │ └── http/ │ │ │ │ └── RecordingProxySelector.kt │ │ │ ├── okio/ │ │ │ │ └── LoggingFilesystem.kt │ │ │ └── testing/ │ │ │ ├── Flaky.kt │ │ │ ├── PlatformRule.kt │ │ │ └── PlatformVersion.kt │ │ └── resources/ │ │ └── META-INF/ │ │ └── proguard/ │ │ └── okhttp3.pro │ └── test/ │ └── kotlin/ │ └── okhttp3/ │ ├── OkHttpClientTestRuleTest.kt │ └── testing/ │ └── PlatformRuleTest.kt ├── okhttp-tls/ │ ├── Module.md │ ├── README.md │ ├── api/ │ │ └── okhttp-tls.api │ ├── build.gradle.kts │ └── src/ │ ├── main/ │ │ ├── java9/ │ │ │ └── module-info.java │ │ └── kotlin/ │ │ └── okhttp3/ │ │ └── tls/ │ │ ├── Certificates.kt │ │ ├── HandshakeCertificates.kt │ │ ├── HeldCertificate.kt │ │ └── internal/ │ │ ├── InsecureAndroidTrustManager.kt │ │ ├── InsecureExtendedTrustManager.kt │ │ ├── TlsUtil.kt │ │ └── der/ │ │ ├── Adapters.kt │ │ ├── AnyValue.kt │ │ ├── BasicDerAdapter.kt │ │ ├── BitString.kt │ │ ├── Certificate.kt │ │ ├── CertificateAdapters.kt │ │ ├── DerAdapter.kt │ │ ├── DerHeader.kt │ │ ├── DerReader.kt │ │ ├── DerWriter.kt │ │ └── ObjectIdentifiers.kt │ └── test/ │ └── java/ │ └── okhttp3/ │ └── tls/ │ ├── CertificatesJavaTest.java │ ├── CertificatesTest.kt │ ├── HandshakeCertificatesTest.kt │ ├── HeldCertificateTest.kt │ └── internal/ │ └── der/ │ ├── DerCertificatesTest.kt │ └── DerTest.kt ├── okhttp-urlconnection/ │ ├── README.md │ ├── api/ │ │ └── okhttp-urlconnection.api │ ├── build.gradle.kts │ └── src/ │ └── main/ │ ├── java9/ │ │ └── module-info.java │ └── kotlin/ │ └── okhttp3/ │ ├── JavaNetAuthenticator.kt │ └── JavaNetCookieJar.kt ├── okhttp-zstd/ │ ├── README.md │ ├── api/ │ │ └── okhttp-zstd.api │ ├── build.gradle.kts │ └── src/ │ ├── main/ │ │ └── kotlin/ │ │ └── okhttp3/ │ │ └── zstd/ │ │ └── Zstd.kt │ └── test/ │ └── java/ │ └── okhttp3/ │ └── zstd/ │ ├── ZstdInterceptorJavaTest.java │ ├── ZstdInterceptorTest.kt │ └── ZstdTestMain.kt ├── regression-test/ │ ├── README.md │ ├── build.gradle.kts │ └── src/ │ ├── androidTest/ │ │ └── java/ │ │ └── okhttp/ │ │ └── regression/ │ │ ├── IssueReproductionTest.java │ │ ├── LetsEncryptTest.java │ │ └── compare/ │ │ ├── AndroidHttpEngineTest.kt │ │ ├── ApacheHttpClientHttp2Test.kt │ │ ├── ApacheHttpClientTest.kt │ │ └── OkHttpClientTest.java │ └── main/ │ ├── AndroidManifest.xml │ └── res/ │ ├── values/ │ │ └── strings.xml │ └── xml/ │ └── network_security_config.xml ├── samples/ │ ├── compare/ │ │ ├── build.gradle.kts │ │ └── src/ │ │ └── test/ │ │ └── kotlin/ │ │ └── okhttp3/ │ │ └── compare/ │ │ ├── ApacheHttpClientTest.kt │ │ ├── JavaHttpClientTest.kt │ │ ├── JettyHttpClientTest.kt │ │ └── OkHttpClientTest.kt │ ├── crawler/ │ │ ├── build.gradle.kts │ │ └── src/ │ │ └── main/ │ │ └── java/ │ │ └── okhttp3/ │ │ └── sample/ │ │ └── Crawler.java │ ├── guide/ │ │ ├── README.md │ │ ├── build.gradle.kts │ │ └── src/ │ │ ├── main/ │ │ │ └── java/ │ │ │ └── okhttp3/ │ │ │ ├── guide/ │ │ │ │ ├── GetExample.java │ │ │ │ └── PostExample.java │ │ │ └── recipes/ │ │ │ ├── AccessHeaders.java │ │ │ ├── AsynchronousGet.java │ │ │ ├── Authenticate.java │ │ │ ├── CacheResponse.java │ │ │ ├── CancelCall.java │ │ │ ├── CertificatePinning.java │ │ │ ├── CheckHandshake.java │ │ │ ├── ConfigureTimeouts.java │ │ │ ├── CurrentDateHeader.java │ │ │ ├── CustomCipherSuites.java │ │ │ ├── CustomTrust.java │ │ │ ├── HttpsServer.java │ │ │ ├── LoggingInterceptors.java │ │ │ ├── ParseResponseWithMoshi.java │ │ │ ├── PerCallSettings.java │ │ │ ├── PostFile.java │ │ │ ├── PostForm.java │ │ │ ├── PostMultipart.java │ │ │ ├── PostStreaming.java │ │ │ ├── PostStreamingWithPipe.java │ │ │ ├── PostString.java │ │ │ ├── PreemptiveAuth.java │ │ │ ├── PrintEvents.java │ │ │ ├── PrintEventsNonConcurrent.java │ │ │ ├── Progress.java │ │ │ ├── RequestBodyCompression.java │ │ │ ├── RewriteResponseCacheControl.java │ │ │ ├── SynchronousGet.java │ │ │ ├── UploadProgress.java │ │ │ ├── WebSocketEcho.java │ │ │ └── kt/ │ │ │ ├── AccessHeaders.kt │ │ │ ├── AsynchronousGet.kt │ │ │ ├── Authenticate.kt │ │ │ ├── CacheResponse.kt │ │ │ ├── CancelCall.kt │ │ │ ├── CertificatePinning.kt │ │ │ ├── ConfigureTimeouts.kt │ │ │ ├── CustomTrust.kt │ │ │ ├── DevServer.kt │ │ │ ├── ParseResponseWithMoshi.kt │ │ │ ├── PerCallSettings.kt │ │ │ ├── PostFile.kt │ │ │ ├── PostForm.kt │ │ │ ├── PostMultipart.kt │ │ │ ├── PostPath.kt │ │ │ ├── PostStreaming.kt │ │ │ ├── PostString.kt │ │ │ ├── SynchronousGet.kt │ │ │ ├── UploadProgress.kt │ │ │ ├── WiresharkExample.kt │ │ │ └── YubikeyClientAuth.kt │ │ └── test/ │ │ └── kotlin/ │ │ └── okhttp3/ │ │ └── AllMainsTest.kt │ ├── simple-client/ │ │ ├── build.gradle.kts │ │ └── src/ │ │ └── main/ │ │ └── java/ │ │ └── okhttp3/ │ │ └── sample/ │ │ └── OkHttpContributors.java │ ├── slack/ │ │ ├── build.gradle.kts │ │ └── src/ │ │ └── main/ │ │ └── java/ │ │ └── okhttp3/ │ │ └── slack/ │ │ ├── OAuthSession.java │ │ ├── OAuthSessionFactory.java │ │ ├── RtmSession.java │ │ ├── RtmStartResponse.java │ │ ├── SlackApi.java │ │ └── SlackClient.java │ ├── static-server/ │ │ ├── build.gradle.kts │ │ └── src/ │ │ └── main/ │ │ └── java/ │ │ └── okhttp3/ │ │ └── sample/ │ │ └── SampleServer.java │ ├── tlssurvey/ │ │ ├── build.gradle.kts │ │ └── src/ │ │ └── main/ │ │ ├── kotlin/ │ │ │ └── okhttp3/ │ │ │ └── survey/ │ │ │ ├── CipherSuiteSurvey.kt │ │ │ ├── Clients.kt │ │ │ ├── Iana.kt │ │ │ ├── RunSurvey.kt │ │ │ ├── ssllabs/ │ │ │ │ ├── SslLabsApi.kt │ │ │ │ ├── SslLabsClient.kt │ │ │ │ └── UserAgentCapabilities.kt │ │ │ └── types/ │ │ │ ├── Client.kt │ │ │ └── SuiteId.kt │ │ └── resources/ │ │ ├── okhttp_3.11.txt │ │ ├── okhttp_3.13.txt │ │ ├── okhttp_3.14.txt │ │ ├── okhttp_3.9.txt │ │ └── okhttp_4.10.txt │ └── unixdomainsockets/ │ ├── build.gradle.kts │ └── src/ │ └── main/ │ └── java/ │ └── okhttp3/ │ └── unixdomainsockets/ │ ├── ClientAndServer.java │ ├── TunnelingUnixSocket.java │ ├── UnixDomainServerSocketFactory.java │ └── UnixDomainSocketFactory.java ├── settings.gradle.kts └── test_docs.sh