public <T> ListenableFuture<T> execute(AsyncHandler<T> handler) { return client.executeRequest(build(), handler); }
public ListenableFuture<Response> execute() { return client.executeRequest(build(), new AsyncCompletionHandlerBase()); } }
final AtomicInteger headers = new AtomicInteger(0); final CountDownLatch latch = new CountDownLatch(1); ahc.executeRequest(ahc.prepareGet(getTargetUrl()).build(), new AsyncHandler<Object>() { public void onThrowable(Throwable t) { fail("Got throwable.", t);
@Test public void testMaxRetry() { try (AsyncHttpClient ahc = asyncHttpClient(config().setMaxRequestRetry(0))) { ahc.executeRequest(ahc.prepareGet(getTargetUrl()).build()).get(); fail(); } catch (Exception t) { assertEquals(t.getCause(), RemotelyClosedException.INSTANCE); } }
final AtomicInteger headers = new AtomicInteger(0); final CountDownLatch latch = new CountDownLatch(1); ahc.executeRequest(ahc.prepareGet(getTargetUrl()).build(), new AsyncHandler<Object>() { public void onThrowable(Throwable t) { fail("Got throwable.", t);
@Test(expectedExceptions = IllegalArgumentException.class) public void malformedUriThrowsException() throws Throwable { withClient().run(client -> withServer(server).run(server -> client.prepareGet(String.format("http:localhost:%d/foo/test", server.getHttpPort())).build())); }
@Test public void testEolTerminatedResponse() throws Exception { try (AsyncHttpClient ahc = asyncHttpClient(config().setMaxRequestRetry(0))) { ahc.executeRequest(ahc.prepareGet(getTargetUrl()).setHeader(ACCEPT_ENCODING, HttpHeaderValues.GZIP_DEFLATE).setHeader(CONNECTION, HttpHeaderValues.CLOSE).build()) .get(); } }
public <T> ListenableFuture<T> execute(AsyncHandler<T> handler) { return client.executeRequest(build(), handler); }
public ListenableFuture<Response> execute() { return client.executeRequest(build(), new AsyncCompletionHandlerBase()); } }
/** * Capture arguments to test for expected values. * Since there is no response, the future will hold a null value. * * @param success callback for handling successful requests. * @param error callback for handling http errors. * @param failure callback for handling exception failures. * @param requestBuilder The bound request builder for the request to be sent. * @param timerName The name that distinguishes this request as part of a druid query or segment metadata request * @param outstanding The counter that keeps track of the outstanding (in flight) requests for the top level query * * @return a future with a null response. */ @Override protected Future<Response> sendRequest( final SuccessCallback success, final HttpErrorCallback error, final FailureCallback failure, final BoundRequestBuilder requestBuilder, final String timerName, final AtomicLong outstanding ) { this.request = requestBuilder.build(); return ConcurrentUtils.constantFuture(null); }
/** * Capture arguments to test for expected values. * Since there is no response, the future will hold a null value. * * @param success callback for handling successful requests. * @param error callback for handling http errors. * @param failure callback for handling exception failures. * @param requestBuilder The bound request builder for the request to be sent. * @param timerName The name that distinguishes this request as part of a druid query or segment metadata request * @param outstanding The counter that keeps track of the outstanding (in flight) requests for the top level query * * @return a future with a null response. */ @Override protected Future<Response> sendRequest( final SuccessCallback success, final HttpErrorCallback error, final FailureCallback failure, final BoundRequestBuilder requestBuilder, final String timerName, final AtomicLong outstanding ) { this.request = requestBuilder.build(); return ConcurrentUtils.constantFuture(null); }
private org.asynchttpclient.Request buildRequest(Request<?> req, Map<String,String> extraHeaders, String key) { BoundRequestBuilder builder = prepareRequest(req); builder.setHeader(Heroku.ApiVersion.v3.getHeaderName(), String.valueOf(Heroku.ApiVersion.v3.getHeaderValue())); builder.setHeader(Http.ContentType.JSON.getHeaderName(), Http.ContentType.JSON.getHeaderValue()); builder.setHeader(Http.UserAgent.LATEST.getHeaderName(), Http.UserAgent.LATEST.getHeaderValue("asynchttpclient")); for (Map.Entry<String, String> entry : extraHeaders.entrySet()) { builder.setHeader(entry.getKey(), entry.getValue()); } for (Map.Entry<String, String> entry : req.getHeaders().entrySet()) { builder.setHeader(entry.getKey(), entry.getValue()); } if (key != null) { try { builder.setHeader("Authorization", "Basic " + Base64.encode((":" + key).getBytes("UTF-8"))); } catch (UnsupportedEncodingException e) { throw new HerokuAPIException("UnsupportedEncodingException while encoding api key", e); } } if (req.hasBody()) { builder.setBody(req.getBody()); } return builder.build(); }
private org.asynchttpclient.Request buildRequest(Request<?> req, Map<String,String> extraHeaders, String key) { BoundRequestBuilder builder = prepareRequest(req); builder.setHeader(Heroku.ApiVersion.v3.getHeaderName(), String.valueOf(Heroku.ApiVersion.v3.getHeaderValue())); builder.setHeader(Http.ContentType.JSON.getHeaderName(), Http.ContentType.JSON.getHeaderValue()); builder.setHeader(Http.UserAgent.LATEST.getHeaderName(), Http.UserAgent.LATEST.getHeaderValue("asynchttpclient")); for (Map.Entry<String, String> entry : extraHeaders.entrySet()) { builder.setHeader(entry.getKey(), entry.getValue()); } for (Map.Entry<String, String> entry : req.getHeaders().entrySet()) { builder.setHeader(entry.getKey(), entry.getValue()); } if (key != null) { try { builder.setHeader("Authorization", "Basic " + Base64.encode((":" + key).getBytes("UTF-8"))); } catch (UnsupportedEncodingException e) { throw new HerokuAPIException("UnsupportedEncodingException while encoding api key", e); } } if (req.hasBody()) { builder.setBody(req.getBody()); } return builder.build(); }
public ArticleAttachments createUploadArticle(long articleId, File file, boolean inline) throws IOException { BoundRequestBuilder builder = client.preparePost(tmpl("/help_center/articles/{id}/attachments.json").set("id", articleId).toString()); if (realm != null) { builder.setRealm(realm); } else { builder.addHeader("Authorization", "Bearer " + oauthToken); } builder.setHeader("Content-Type", "multipart/form-data"); if (inline) builder.addBodyPart(new StringPart("inline", "true")); builder.addBodyPart( new FilePart("file", file, "application/octet-stream", Charset.forName("UTF-8"), file.getName())); final Request req = builder.build(); return complete(submit(req, handle(ArticleAttachments.class, "article_attachment"))); }
private JsonObject performRequest(BoundRequestBuilder requestBuilder, JsonObject body, int expectedStatusCode, String errorMessage) { if (body != null) { requestBuilder.setBody(body.toJson()); } addAuth(requestBuilder); requestBuilder.setFollowRedirect(true); requestBuilder.addHeader("Content-Type", JSON.toString()); requestBuilder.addHeader("Accept", JSON.toString()); requestBuilder.setCharset(StandardCharsets.UTF_8); Request request = requestBuilder.build(); MDC.put(MDC_URL_KEY, request.getUrl()); MDC.put(MDC_METHOD_KEY, request.getMethod()); try { Response response = httpClient.executeRequest(request).get(stashTimeout, TimeUnit.MILLISECONDS); validateResponse(response, expectedStatusCode, errorMessage); return extractResponse(response); } catch (ExecutionException | TimeoutException e) { throw new StashClientException(request.getUrl(), e); } catch (InterruptedException e) { Thread.currentThread().interrupt(); throw new StashClientException(request.getUrl(), e); } finally { MDC.remove(MDC_URL_KEY); MDC.remove(MDC_METHOD_KEY); } }