1
0
mirror of https://github.com/square/okhttp.git synced 2025-07-31 05:04:26 +03:00

HappyEyeballs (#7035)

This doesn't yet introduce any mechanism to enable or disable
happy eyeballs.

It also doesn't sort IP addresses to alternate IPv6, IPv4
for best success.

It also doesn't limit how many connections are attempted
simultaneously.

It also lacks an appropriate number of tests.
This commit is contained in:
Jesse Wilson
2022-01-28 11:11:05 -05:00
committed by GitHub
parent d4b5c9eac8
commit f15c81b4e9
11 changed files with 359 additions and 37 deletions

View File

@ -17,20 +17,21 @@ package okhttp3.logging;
import java.io.IOException;
import java.net.UnknownHostException;
import mockwebserver3.MockResponse;
import mockwebserver3.MockWebServer;
import mockwebserver3.SocketPolicy;
import mockwebserver3.junit5.internal.MockWebServerExtension;
import okhttp3.Call;
import okhttp3.EventListener;
import okhttp3.HttpUrl;
import okhttp3.MediaType;
import okhttp3.OkHttpClient;
import okhttp3.TestUtil;
import okhttp3.testing.PlatformRule;
import okhttp3.OkHttpClientTestRule;
import okhttp3.Request;
import okhttp3.RequestBody;
import okhttp3.Response;
import mockwebserver3.MockResponse;
import mockwebserver3.MockWebServer;
import mockwebserver3.SocketPolicy;
import okhttp3.TestUtil;
import okhttp3.testing.PlatformRule;
import okhttp3.tls.HandshakeCertificates;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
@ -49,6 +50,7 @@ public final class LoggingEventListenerTest {
private static final MediaType PLAIN = MediaType.get("text/plain");
@RegisterExtension public final PlatformRule platform = new PlatformRule();
@RegisterExtension public final OkHttpClientTestRule clientTestRule = new OkHttpClientTestRule();
private MockWebServer server;
private final HandshakeCertificates handshakeCertificates = localhost();
@ -61,13 +63,12 @@ public final class LoggingEventListenerTest {
@BeforeEach
public void setUp(MockWebServer server) {
this.server = server;
client =
new OkHttpClient.Builder()
.eventListenerFactory(loggingEventListenerFactory)
.sslSocketFactory(
handshakeCertificates.sslSocketFactory(), handshakeCertificates.trustManager())
.retryOnConnectionFailure(false)
.build();
this.client = clientTestRule.newClientBuilder()
.eventListenerFactory(loggingEventListenerFactory)
.sslSocketFactory(handshakeCertificates.sslSocketFactory(),
handshakeCertificates.trustManager())
.retryOnConnectionFailure(false)
.build();
url = server.url("/");
}