public static void setCachingHeaders(HttpResponseBuilder response, int ttl, boolean noProxy) { for (Pair<String, String> header : HttpUtil.getCachingHeadersToSet(ttl, noProxy)) { response.setHeader(header.one, header.two); } }
public HttpResponse markResponse(HttpRequest request, HttpResponse response) { if (request.getAuthType() == AuthType.NONE) { return response; } String mark = getInvalidationMark(request); if (mark.length() > 0) { return new HttpResponseBuilder(response).setHeader(INVALIDATION_HEADER, mark).create(); } return response; }
public HttpResponse markResponse(HttpRequest request, HttpResponse response) { if (request.getAuthType() == AuthType.NONE) { return response; } String mark = getInvalidationMark(request); if (mark.length() > 0) { return new HttpResponseBuilder(response).setHeader(INVALIDATION_HEADER, mark).create(); } return response; }
public HttpResponse markResponse(HttpRequest request, HttpResponse response) { if (request.getAuthType() == AuthType.NONE) { return response; } String mark = getInvalidationMark(request); if (mark.length() > 0) { return new HttpResponseBuilder(response).setHeader(INVALIDATION_HEADER, mark).create(); } return response; }
@Test public void testHeaders() throws Exception { HttpResponse response = new HttpResponseBuilder() .setHttpStatusCode(999) .setHeader("Set-Cookie", "cookie") .setHeader("location", "here") .create(); Map<String, Object> obj = FetchResponseUtils.getResponseAsJson(response, "key", "body", false); JsonAssert.assertObjectEquals( "{rc:999,id:'key',body:'body',headers:{set-cookie:['cookie'],location:['here']}}", obj); }
/** Makes a new {@link HttpResponse} with an image content. */ private HttpResponseBuilder getImageResponse(String contentType, byte[] imageBytes) { return new HttpResponseBuilder() .setHeader(CONTENT_TYPE_HEADER, contentType) .setHttpStatusCode(HttpResponse.SC_OK) .setResponse(imageBytes); }
/** * @return An HttpResponse object wrapping the given GadgetException. */ public static HttpResponse errorResponse(GadgetException e) { return new HttpResponseBuilder().setHttpStatusCode(e.getHttpStatusCode()) .setHeader("Content-Type", "text/plain") .setResponseString(e.getMessage() != null ? e.getMessage() : "").create(); }
@Test public void testHeaders() throws Exception { HttpResponse response = new HttpResponseBuilder() .setHttpStatusCode(999) .setHeader("Set-Cookie", "cookie") .setHeader("location", "here") .create(); Map<String, Object> obj = FetchResponseUtils.getResponseAsJson(response, "key", "body", false); JsonAssert.assertObjectEquals( "{rc:999,id:'key',body:'body',headers:{set-cookie:['cookie'],location:['here']}}", obj); }
/** Makes a new {@link HttpResponse} with an image content. */ private HttpResponseBuilder getImageResponse(String contentType, byte[] imageBytes) { return new HttpResponseBuilder() .setHeader(CONTENT_TYPE_HEADER, contentType) .setHttpStatusCode(HttpResponse.SC_OK) .setResponse(imageBytes); }
@Test public void testRetryAfter() { HttpResponse response; for (int rc : Arrays.asList(HttpResponse.SC_INTERNAL_SERVER_ERROR, HttpResponse.SC_GATEWAY_TIMEOUT, HttpResponse.SC_BAD_REQUEST)) { response = new HttpResponseBuilder() .setHttpStatusCode(rc) .setHeader("Retry-After","60") .create(); long ttl = response.getCacheTtl(); assertTrue(ttl <= 60 * 1000L && ttl > 0); } }
@Test public void testHashCodeExtraMeta() { HttpResponse local = new HttpResponseBuilder() .setResponseString("data1") .setMetadata(ImmutableMap.<String, String>of("K","V")) .setHeader("X-data", "no data") .create(); verifyHash(local, 2, "h7cg7f1lrrf74jul5h8k6vvlvk"); }
public HttpResponse fetch(final HttpRequest request) throws GadgetException { this.request = request; final HttpResponseBuilder builder = new HttpResponseBuilder(); builder.setStrictNoCache(); builder.setHttpStatusCode(HttpResponse.SC_OK); builder.setHeader("Content-Type", "application/json"); builder.setContent("{\"access_token\":\"xxx\",\"token_type\":\"Bearer\",\"expires_in\":\"1\",\"refresh_token\":\"yyy\",\"example_parameter\":\"example_value\"}"); return builder.create(); } }
@Before public void setUp() throws Exception { rewriterFeatureFactory = new ContentRewriterFeature.Factory(null, Providers.of(new ContentRewriterFeature.DefaultConfig(".*", "", "86400", "embed,img,script,link,style", false, false, false))); defaultRewriterFeature = rewriterFeatureFactory.getDefault(); tags = defaultRewriterFeature.getIncludedTags(); injector = Guice.createInjector(getParseModule(), new PropertiesModule(), new TestModule()); parser = injector.getInstance(GadgetHtmlParser.class); fakeResponse = new HttpResponseBuilder().setHeader("Content-Type", "unknown") .setResponse(new byte[]{ (byte)0xFE, (byte)0xFF}); control = EasyMock.createControl(); }
@Before public void setUp() throws Exception { rewriterFeatureFactory = new ContentRewriterFeature.Factory(null, Providers.of(new ContentRewriterFeature.DefaultConfig(".*", "", "86400", "embed,img,script,link,style", false, false, false))); defaultRewriterFeature = rewriterFeatureFactory.getDefault(); tags = defaultRewriterFeature.getIncludedTags(); injector = Guice.createInjector(getParseModule(), new PropertiesModule(), new TestModule()); parser = injector.getInstance(GadgetHtmlParser.class); fakeResponse = new HttpResponseBuilder().setHeader("Content-Type", "unknown") .setResponse(new byte[]{ (byte)0xFE, (byte)0xFF}); control = EasyMock.createControl(); }
@Before public void setUp() throws Exception { rewriterFeatureFactory = new ContentRewriterFeature.Factory(null, Providers.of(new ContentRewriterFeature.DefaultConfig(".*", "", "86400", TAGS, false, false, false))); defaultRewriterFeature = rewriterFeatureFactory.getDefault(); tags = defaultRewriterFeature.getIncludedTags(); injector = Guice.createInjector(getParseModule(), new PropertiesModule(), new TestModule()); parser = injector.getInstance(GadgetHtmlParser.class); fakeResponse = new HttpResponseBuilder().setHeader("Content-Type", "unknown") .setResponse(new byte[]{ (byte)0xFE, (byte)0xFF}); control = EasyMock.createControl(); }
@Before public void setUp() throws Exception { rewriterFeatureFactory = new ContentRewriterFeature.Factory(null, Providers.of(new ContentRewriterFeature.DefaultConfig(".*", "", "86400", TAGS, false, false, false))); defaultRewriterFeature = rewriterFeatureFactory.getDefault(); tags = defaultRewriterFeature.getIncludedTags(); injector = Guice.createInjector(getParseModule(), new PropertiesModule(), new TestModule()); parser = injector.getInstance(GadgetHtmlParser.class); fakeResponse = new HttpResponseBuilder().setHeader("Content-Type", "unknown") .setResponse(new byte[]{ (byte)0xFE, (byte)0xFF}); control = EasyMock.createControl(); }
@Test public void testShouldRefetchForStrictNoCacheResponsePastShouldNotRefetch() throws Exception { assertEquals(false, new HttpResponseBuilder().setStrictNoCache() .setHeader("Date", DateUtil.formatRfc1123Date(HttpUtil.getTimeSource().currentTimeMillis() - 5000)) .setRefetchStrictNoCacheAfterMs(10000) .create() .shouldRefetch()); }
@Test public void testShouldRefetchForStrictNoCacheResponsePastShouldNotRefetch() throws Exception { assertEquals(false, new HttpResponseBuilder().setStrictNoCache() .setHeader("Date", DateUtil.formatRfc1123Date(HttpUtil.getTimeSource().currentTimeMillis() - 5000)) .setRefetchStrictNoCacheAfterMs(10000) .create() .shouldRefetch()); }
@Test public void testShouldRefetchForStrictNoCacheResponsePastShouldRefetch() throws Exception { assertEquals(true, new HttpResponseBuilder().setStrictNoCache() .setHeader("Date", DateUtil.formatRfc1123Date(HttpUtil.getTimeSource().currentTimeMillis() - 20000)) .setRefetchStrictNoCacheAfterMs(10000) .create() .shouldRefetch()); }
@Test public void testShouldRefetchForStrictNoCacheResponsePastShouldRefetch() throws Exception { assertEquals(true, new HttpResponseBuilder().setStrictNoCache() .setHeader("Date", DateUtil.formatRfc1123Date(HttpUtil.getTimeSource().currentTimeMillis() - 20000)) .setRefetchStrictNoCacheAfterMs(10000) .create() .shouldRefetch()); }