/** * Invoke this API if you want to set the Range header on your {@link Request} based on the last valid bytes * position. * * @param request {@link Request} * @return a {@link Request} with the Range header properly set. */ public Request adjustRequestRange(Request request) { Long ri = resumableIndex.get(request.getUrl()); if (ri != null) { byteTransferred.set(ri); } // The Resumable if (resumableListener != null && resumableListener.length() > 0 && byteTransferred.get() != resumableListener.length()) { byteTransferred.set(resumableListener.length()); } RequestBuilder builder = new RequestBuilder(request); if (request.getHeaders().get(RANGE) == null && byteTransferred.get() != 0) { builder.setHeader(RANGE, "bytes=" + byteTransferred.get() + "-"); } return builder.build(); }
@Override protected ListenableFuture<Response> go(Request request) { results.put( request.getUrl(), StandardCharsets.UTF_8.decode(request.getByteBufferData().slice()).toString() ); return GoHandlers.immediateFuture(okResponse()); } }.times(2)
@Test public void testPercentageEncodedUserInfo() { final Request req = get("http://hello:wor%20ld@foo.com").build(); assertEquals(req.getMethod(), "GET"); assertEquals(req.getUrl(), "http://hello:wor%20ld@foo.com"); }
@Test public void testParsesQueryParams() { Request request = get("http://foo.com/?param1=value1").addQueryParam("param2", "value2").build(); assertEquals(request.getUrl(), "http://foo.com/?param1=value1¶m2=value2"); List<Param> params = request.getQueryParams(); assertEquals(params.size(), 2); assertEquals(params.get(0), new Param("param1", "value1")); assertEquals(params.get(1), new Param("param2", "value2")); }
@Override public ListenableFuture<Response> go(Request request) throws JsonProcessingException { Assert.assertEquals("http://example.com/test", request.getUrl()); Assert.assertEquals( StringUtils.format( "[%s,%s]\n", jsonMapper.writeValueAsString(events.get(0)), jsonMapper.writeValueAsString(events.get(1)) ), StandardCharsets.UTF_8.decode(request.getByteBufferData().slice()).toString() ); return GoHandlers.immediateFuture(okResponse()); } }.times(1)
@Test public void testUserProvidedRequestMethod() { Request req = new RequestBuilder("ABC").setUrl("http://foo.com").build(); assertEquals(req.getMethod(), "ABC"); assertEquals(req.getUrl(), "http://foo.com"); }
@Override protected ListenableFuture<Response> go(Request request) throws JsonProcessingException { Assert.assertEquals("http://example.com/val1/val2", request.getUrl()); Assert.assertEquals( StringUtils.format( "[%s,%s]\n", jsonMapper.writeValueAsString(events.get(0)), jsonMapper.writeValueAsString(events.get(1)) ), StandardCharsets.UTF_8.decode(request.getByteBufferData().slice()).toString() ); return GoHandlers.immediateFuture(okResponse()); } }.times(1)
assertEquals(request.getUrl(), "http://example.com/?name=" + expValue);
@Override protected ListenableFuture<Response> go(Request request) throws JsonProcessingException { Assert.assertEquals(TARGET_URL, request.getUrl()); Assert.assertEquals( "application/json", request.getHeaders().get(HttpHeaders.Names.CONTENT_TYPE) ); Assert.assertEquals( StringUtils.format( "[%s,%s]\n", jsonMapper.writeValueAsString(events.get(counter.getAndIncrement())), jsonMapper.writeValueAsString(events.get(counter.getAndIncrement())) ), StandardCharsets.UTF_8.decode(request.getByteBufferData().slice()).toString() ); return GoHandlers.immediateFuture(okResponse()); } }.times(3)
@Test public void testSettingQueryParamsBeforeUrlShouldNotProduceNPE() { RequestBuilder requestBuilder = new RequestBuilder(); requestBuilder.setQueryParams(singletonList(new Param("key", "value"))); requestBuilder.setUrl("http://localhost"); Request request = requestBuilder.build(); assertEquals(request.getUrl(), "http://localhost?key=value"); }
@Override protected ListenableFuture<Response> go(Request request) throws JsonProcessingException { Assert.assertEquals(TARGET_URL, request.getUrl()); Assert.assertEquals( "application/json", request.getHeaders().get(HttpHeaders.Names.CONTENT_TYPE) ); Assert.assertEquals( StringUtils.format( "[%s,%s]\n", jsonMapper.writeValueAsString(events.get(0)), jsonMapper.writeValueAsString(events.get(1)) ), StandardCharsets.UTF_8.decode(request.getByteBufferData().slice()).toString() ); return GoHandlers.immediateFuture(okResponse()); } }.times(1)
@Override protected ListenableFuture<Response> go(Request request) throws JsonProcessingException { Assert.assertEquals(TARGET_URL, request.getUrl()); Assert.assertEquals( "application/json", request.getHeaders().get(HttpHeaders.Names.CONTENT_TYPE) ); Assert.assertEquals( StringUtils.format( "[%s,%s]\n", jsonMapper.writeValueAsString(events.get(0)), jsonMapper.writeValueAsString(events.get(1)) ), StandardCharsets.UTF_8.decode(request.getByteBufferData().slice()).toString() ); return GoHandlers.immediateFuture(okResponse()); } }.times(1)
@Override protected ListenableFuture<Response> go(Request request) throws IOException { Assert.assertEquals(TARGET_URL, request.getUrl()); Assert.assertEquals( "application/json", request.getHeaders().get(HttpHeaders.Names.CONTENT_TYPE) ); Assert.assertEquals( HttpHeaders.Values.GZIP, request.getHeaders().get(HttpHeaders.Names.CONTENT_ENCODING) ); ByteArrayOutputStream baos = new ByteArrayOutputStream(); ByteBuffer data = request.getByteBufferData().slice(); byte[] dataArray = new byte[data.remaining()]; data.get(dataArray); CompressionUtils.gunzip(new ByteArrayInputStream(dataArray), baos); Assert.assertEquals( StringUtils.format( "[%s,%s]\n", jsonMapper.writeValueAsString(events.get(0)), jsonMapper.writeValueAsString(events.get(1)) ), baos.toString(StandardCharsets.UTF_8.name()) ); return GoHandlers.immediateFuture(okResponse()); } }.times(1)
assertEquals(req.getUrl(), "http://photos.example.net/photos?file=vacation.jpg&size=original"); assertEquals( authHeader,
@Override protected ListenableFuture<Response> go(Request request) throws JsonProcessingException { Assert.assertEquals(TARGET_URL, request.getUrl()); Assert.assertEquals( "application/json", request.getHeaders().get(HttpHeaders.Names.CONTENT_TYPE) ); Assert.assertEquals( "Basic " + StringUtils.encodeBase64String(StringUtils.toUtf8("foo:bar")), request.getHeaders().get(HttpHeaders.Names.AUTHORIZATION) ); Assert.assertEquals( StringUtils.format( "%s\n%s\n", jsonMapper.writeValueAsString(events.get(0)), jsonMapper.writeValueAsString(events.get(1)) ), StandardCharsets.UTF_8.decode(request.getByteBufferData().slice()).toString() ); return GoHandlers.immediateFuture(okResponse()); } }.times(1)
assertEquals(req.getUrl(), "http://photos.example.net/photos?file=vacation.jpg&size=original");
@Test public void getUrlWithPathWithQuery() throws Throwable { withClient().run(client -> withServer(server).run(server -> { String targetUrl = getTargetUrl() + "?q=+%20x"; Request request = get(targetUrl).build(); assertEquals(request.getUrl(), targetUrl); server.enqueueOk(); Response response = client.executeRequest(request, new AsyncCompletionHandlerAdapter()).get(TIMEOUT, SECONDS); assertEquals(response.getUri().toUrl(), targetUrl); })); }
private <T> ListenableFuture<T> submit(Request request, ZendeskAsyncCompletionHandler<T> handler) { if (logger.isDebugEnabled()) { if (request.getStringData() != null) { logger.debug("Request {} {}\n{}", request.getMethod(), request.getUrl(), request.getStringData()); } else if (request.getByteData() != null) { logger.debug("Request {} {} {} {} bytes", request.getMethod(), request.getUrl(), request.getHeaders().get("Content-type"), request.getByteData().length); } else { logger.debug("Request {} {}", request.getMethod(), request.getUrl()); } } return client.executeRequest(request, handler); }
@Override public Request getMessage() { build(requestBuilder); Request webRequest = requestBuilder.build(); log.debug("Request URL: {}, PARAMS: {}", webRequest.getUrl(), webRequest.getQueryParams()); return requestBuilder.build(); } }
@Override protected ListenableFuture<Response> go(Request request) { results.put( request.getUrl().toString(), Charsets.UTF_8.decode(request.getByteBufferData().slice()).toString() ); return GoHandlers.immediateFuture(okResponse()); } }.times(2)