use of java.net.URLConnection in project okhttp by square.
the class ResponseCacheTest method getHeadersDeletesCached100LevelWarnings.
@Test
public void getHeadersDeletesCached100LevelWarnings() throws Exception {
server.enqueue(new MockResponse().addHeader("Warning: 199 test danger").addHeader("Last-Modified: " + formatDate(-1, TimeUnit.HOURS)).addHeader("Cache-Control: max-age=0").setBody("A"));
server.enqueue(new MockResponse().setResponseCode(HttpURLConnection.HTTP_NOT_MODIFIED));
URLConnection connection1 = openConnection(server.url("/").url());
assertEquals("A", readAscii(connection1));
assertEquals("199 test danger", connection1.getHeaderField("Warning"));
URLConnection connection2 = openConnection(server.url("/").url());
assertEquals("A", readAscii(connection2));
assertEquals(null, connection2.getHeaderField("Warning"));
}
use of java.net.URLConnection in project okhttp by square.
the class ResponseCacheTest method requestCacheControlNoCache.
@Test
public void requestCacheControlNoCache() throws Exception {
server.enqueue(new MockResponse().addHeader("Last-Modified: " + formatDate(-120, TimeUnit.SECONDS)).addHeader("Date: " + formatDate(0, TimeUnit.SECONDS)).addHeader("Cache-Control: max-age=60").setBody("A"));
server.enqueue(new MockResponse().setBody("B"));
URL url = server.url("/").url();
assertEquals("A", readAscii(openConnection(url)));
URLConnection connection = openConnection(url);
connection.setRequestProperty("Cache-Control", "no-cache");
assertEquals("B", readAscii(connection));
}
use of java.net.URLConnection in project okhttp by square.
the class ResponseCacheTest method requestMaxStaleDirectiveWithNoValue.
@Test
public void requestMaxStaleDirectiveWithNoValue() throws IOException {
// Add a stale response to the cache.
server.enqueue(new MockResponse().setBody("A").addHeader("Cache-Control: max-age=120").addHeader("Date: " + formatDate(-4, TimeUnit.MINUTES)));
server.enqueue(new MockResponse().setBody("B"));
assertEquals("A", readAscii(openConnection(server.url("/").url())));
// With max-stale, we'll return that stale response.
URLConnection maxStaleConnection = openConnection(server.url("/").url());
maxStaleConnection.setRequestProperty("Cache-Control", "max-stale");
assertEquals("A", readAscii(maxStaleConnection));
assertEquals("110 HttpURLConnection \"Response is stale\"", maxStaleConnection.getHeaderField("Warning"));
}
use of java.net.URLConnection in project okhttp by square.
the class ResponseCacheTest method otherStacks_cacheMissWithVaryAcceptEncoding.
// Other stacks (e.g. older versions of OkHttp bundled inside Android apps) can interact with the
// default ResponseCache. We can't keep the Vary case working because we can't get to the Vary
// request headers after connect(). Accept-Encoding has special behavior so we test it explicitly.
@Test
public void otherStacks_cacheMissWithVaryAcceptEncoding() throws Exception {
server.enqueue(new MockResponse().addHeader("Cache-Control: max-age=60").addHeader("Vary: Accept-Encoding").setBody("A"));
server.enqueue(new MockResponse().setBody("B"));
// Set the cache as the shared cache.
ResponseCache.setDefault(cache);
// Use the platform's HTTP stack.
URLConnection connection = server.url("/").url().openConnection();
assertFalse(connection instanceof OkHttpURLConnection);
assertEquals("A", readAscii(connection));
URLConnection connection2 = server.url("/").url().openConnection();
assertFalse(connection2 instanceof OkHttpURLConnection);
assertEquals("B", readAscii(connection2));
}
use of java.net.URLConnection in project okhttp by square.
the class ResponseCacheTest method useCachesFalseDoesNotWriteToCache.
@Test
public void useCachesFalseDoesNotWriteToCache() throws Exception {
server.enqueue(new MockResponse().addHeader("Cache-Control: max-age=60").setBody("A"));
server.enqueue(new MockResponse().setBody("B"));
URLConnection connection = openConnection(server.url("/").url());
connection.setUseCaches(false);
assertEquals("A", readAscii(connection));
assertEquals("B", readAscii(openConnection(server.url("/").url())));
}
Aggregations