use of okhttp3.mockwebserver.RecordedRequest in project okhttp by square.
the class URLConnectionTest method clientConfiguredGzipContentEncoding.
@Test
public void clientConfiguredGzipContentEncoding() throws Exception {
Buffer bodyBytes = gzip("ABCDEFGHIJKLMNOPQRSTUVWXYZ");
server.enqueue(new MockResponse().setBody(bodyBytes).addHeader("Content-Encoding: gzip"));
URLConnection connection = urlFactory.open(server.url("/").url());
connection.addRequestProperty("Accept-Encoding", "gzip");
InputStream gunzippedIn = new GZIPInputStream(connection.getInputStream());
assertEquals("ABCDEFGHIJKLMNOPQRSTUVWXYZ", readAscii(gunzippedIn, Integer.MAX_VALUE));
assertEquals(bodyBytes.size(), connection.getContentLength());
RecordedRequest request = server.takeRequest();
assertEquals("gzip", request.getHeader("Accept-Encoding"));
}
use of okhttp3.mockwebserver.RecordedRequest in project okhttp by square.
the class URLConnectionTest method authenticateWithGetAndTransparentGzip.
/** https://code.google.com/p/android/issues/detail?id=74026 */
@Test
public void authenticateWithGetAndTransparentGzip() throws Exception {
MockResponse pleaseAuthenticate = new MockResponse().setResponseCode(401).addHeader("WWW-Authenticate: Basic realm=\"protected area\"").setBody("Please authenticate.");
// fail auth three times...
server.enqueue(pleaseAuthenticate);
server.enqueue(pleaseAuthenticate);
server.enqueue(pleaseAuthenticate);
// ...then succeed the fourth time
MockResponse successfulResponse = new MockResponse().addHeader("Content-Encoding", "gzip").setBody(gzip("Successful auth!"));
server.enqueue(successfulResponse);
Authenticator.setDefault(new RecordingAuthenticator());
urlFactory.setClient(urlFactory.client().newBuilder().authenticator(new JavaNetAuthenticator()).build());
connection = urlFactory.open(server.url("/").url());
assertEquals("Successful auth!", readAscii(connection.getInputStream(), Integer.MAX_VALUE));
// no authorization header for the first request...
RecordedRequest request = server.takeRequest();
assertNull(request.getHeader("Authorization"));
// ...but the three requests that follow requests include an authorization header
for (int i = 0; i < 3; i++) {
request = server.takeRequest();
assertEquals("GET / HTTP/1.1", request.getRequestLine());
assertEquals("Basic " + RecordingAuthenticator.BASE_64_CREDENTIALS, request.getHeader("Authorization"));
}
}
use of okhttp3.mockwebserver.RecordedRequest in project okhttp by square.
the class URLConnectionTest method userAgentPicksUpHttpAgentSystemProperty.
@Test
public void userAgentPicksUpHttpAgentSystemProperty() throws Exception {
server.enqueue(new MockResponse().setBody("abc"));
System.setProperty("http.agent", "foo");
assertContent("abc", urlFactory.open(server.url("/").url()));
RecordedRequest request = server.takeRequest();
assertEquals("foo", request.getHeader("User-Agent"));
}
use of okhttp3.mockwebserver.RecordedRequest in project okhttp by square.
the class URLConnectionTest method gzipWithRedirectAndConnectionReuse.
/**
* We had a bug where we weren't closing Gzip streams on redirects.
* https://github.com/square/okhttp/issues/441
*/
@Test
public void gzipWithRedirectAndConnectionReuse() throws Exception {
server.enqueue(new MockResponse().setResponseCode(HttpURLConnection.HTTP_MOVED_TEMP).addHeader("Location: /foo").addHeader("Content-Encoding: gzip").setBody(gzip("Moved! Moved! Moved!")));
server.enqueue(new MockResponse().setBody("This is the new page!"));
HttpURLConnection connection = urlFactory.open(server.url("/").url());
assertContent("This is the new page!", connection);
RecordedRequest requestA = server.takeRequest();
assertEquals(0, requestA.getSequenceNumber());
RecordedRequest requestB = server.takeRequest();
assertEquals(1, requestB.getSequenceNumber());
}
use of okhttp3.mockwebserver.RecordedRequest in project okhttp by square.
the class URLConnectionTest method connectViaHttpsWithSSLFallback.
// TODO(jwilson): tests below this marker need to be migrated to OkHttp's request/response API.
@Test
public void connectViaHttpsWithSSLFallback() throws Exception {
server.useHttps(sslClient.socketFactory, false);
server.enqueue(new MockResponse().setSocketPolicy(FAIL_HANDSHAKE));
server.enqueue(new MockResponse().setBody("this response comes via SSL"));
urlFactory.setClient(urlFactory.client().newBuilder().hostnameVerifier(new RecordingHostnameVerifier()).connectionSpecs(Arrays.asList(ConnectionSpec.MODERN_TLS, ConnectionSpec.COMPATIBLE_TLS)).sslSocketFactory(suppressTlsFallbackClientSocketFactory(), sslClient.trustManager).build());
connection = urlFactory.open(server.url("/foo").url());
assertContent("this response comes via SSL", connection);
RecordedRequest failHandshakeRequest = server.takeRequest();
assertNull(failHandshakeRequest.getRequestLine());
RecordedRequest fallbackRequest = server.takeRequest();
assertEquals("GET /foo HTTP/1.1", fallbackRequest.getRequestLine());
assertEquals(TlsVersion.TLS_1_0, fallbackRequest.getTlsVersion());
}
Aggregations