public Builder addHeader(CharSequence name, Object value) { requestBuilder.addHeader(name, value); return this; }
public <T> FilterContext<T> filter(FilterContext<T> ctx) { if (ctx.getResponseHeaders() != null && ctx.getResponseHeaders().get("Ping").equals("Pong") && replay.getAndSet(false)) { Request request = new RequestBuilder(ctx.getRequest()).addHeader("Ping", "Pong").build(); return new FilterContext.FilterContextBuilder<T>().asyncHandler(ctx.getAsyncHandler()).request(request).replayRequest(true).build(); } return ctx; } };
private void doTestNegative(final int status, boolean strict) throws Exception { ResponseFilter responseFilter = new ResponseFilter() { @Override public <T> FilterContext<T> filter(FilterContext<T> ctx) { // pass on the x-expect-get and remove the x-redirect // headers if found in the response ctx.getResponseHeaders().get("x-expect-post"); ctx.getRequest().getHeaders().add("x-expect-post", "true"); ctx.getRequest().getHeaders().remove("x-redirect"); return ctx; } }; try (AsyncHttpClient p = asyncHttpClient(config().setFollowRedirect(true).setStrict302Handling(strict).addResponseFilter(responseFilter))) { Request request = post(getTargetUrl()).addFormParam("q", "a b").addHeader("x-redirect", +status + "@" + "http://localhost:" + port1 + "/foo/bar/baz").addHeader("x-negative", "true").build(); Future<Integer> responseFuture = p.executeRequest(request, new AsyncCompletionHandler<Integer>() { @Override public Integer onCompleted(Response response) { return response.getStatusCode(); } @Override public void onThrowable(Throwable t) { t.printStackTrace(); fail("Unexpected exception: " + t.getMessage(), t); } }); int statusCode = responseFuture.get(); assertEquals(statusCode, 200); } }
public <T> FilterContext<T> filter(FilterContext<T> ctx) { if (replay.getAndSet(false)) { Request request = new RequestBuilder(ctx.getRequest()).addHeader("X-Replay", "true").build(); return new FilterContext.FilterContextBuilder<T>().asyncHandler(ctx.getAsyncHandler()).request(request).replayRequest(true).build(); } return ctx; } };
private void doTestPositive(final int status) throws Exception { ResponseFilter responseFilter = new ResponseFilter() { @Override public <T> FilterContext<T> filter(FilterContext<T> ctx) { // pass on the x-expect-get and remove the x-redirect // headers if found in the response ctx.getResponseHeaders().get("x-expect-get"); ctx.getRequest().getHeaders().add("x-expect-get", "true"); ctx.getRequest().getHeaders().remove("x-redirect"); return ctx; } }; try (AsyncHttpClient p = asyncHttpClient(config().setFollowRedirect(true).addResponseFilter(responseFilter))) { Request request = post(getTargetUrl()).addFormParam("q", "a b").addHeader("x-redirect", +status + "@" + "http://localhost:" + port1 + "/foo/bar/baz").build(); Future<Integer> responseFuture = p.executeRequest(request, new AsyncCompletionHandler<Integer>() { @Override public Integer onCompleted(Response response) { return response.getStatusCode(); } @Override public void onThrowable(Throwable t) { t.printStackTrace(); fail("Unexpected exception: " + t.getMessage(), t); } }); int statusCode = responseFuture.get(); assertEquals(statusCode, 200); } }
public <T> FilterContext<T> filter(FilterContext<T> ctx) { if (ctx.getResponseStatus() != null && ctx.getResponseStatus().getStatusCode() == 200 && replay.getAndSet(false)) { Request request = new RequestBuilder(ctx.getRequest()).addHeader("X-Replay", "true").build(); return new FilterContext.FilterContextBuilder<T>().asyncHandler(ctx.getAsyncHandler()).request(request).replayRequest(true).build(); } return ctx; } };
public Builder addHeader(String name, String value) { requestBuilder.addHeader(name, value); return this; }
@Override protected void applyAuthenticationScheme(RequestBuilder requestBuilder, String authToken) { requestBuilder.addHeader("authorization", String.format("Bearer %s", authToken)); } }
/** * Add cookies to the final HTTP request. * * @param builder The pending HTTP request. * @see RequestBuilder#addCookie(Cookie) */ private void handleCookies(RequestBuilder builder) { if (!cookies.isEmpty()) { builder.addHeader(HttpHeaders.COOKIE, Cookies.serialize(cookies)); } } }
private static void withLocale(UserContext ctx, RequestBuilder req) { req.addHeader(ACCEPT_LANGUAGE, ctx.getLocale().toLanguageTag()); }
protected void header(CharSequence header, String value) { request().addHeader(header, value); }
/** * Add headers to the final HTTP request. * * @param builder The pending HTTP request. * @see RequestBuilder#addHeader(CharSequence, String) */ private void handleHeaders(RequestBuilder builder) { for (HttpHeader header : headers.values()) { builder.addHeader(header.getName(), header.getValues()); } }
private Request req(String method, String url) { RequestBuilder builder = new RequestBuilder(method); if (realm != null) { builder.setRealm(realm); } else { builder.addHeader("Authorization", "Bearer " + oauthToken); } builder.setUrl(RESTRICTED_PATTERN.matcher(url).replaceAll("+")); // replace out %2B with + due to API restriction return builder.build(); }
private Request req(String method, Uri template, String contentType, byte[] body) { RequestBuilder builder = new RequestBuilder(method); if (realm != null) { builder.setRealm(realm); } else { builder.addHeader("Authorization", "Bearer " + oauthToken); } builder.setUrl(RESTRICTED_PATTERN.matcher(template.toString()).replaceAll("+")); //replace out %2B with + due to API restriction builder.addHeader("Content-type", contentType); builder.setBody(body); return builder.build(); }
@Override public RequestBuilder authenticated(RequestBuilder req, UserContext ctx) { req.addHeader(TradeshiftHeaders.TENANT_ID, ctx.getCompanyAccountId().toString()); req.setSignatureCalculator(new OAuthSignatureCalculator(consumerKeyLookup.apply(ctx), tokenLookup.apply(ctx))); return req; } }
Request asAhcRequest(final HttpRequest request) { final RequestBuilder builder = new RequestBuilder() .setUrl(request.getUrl()) .setMethod(request.getHttpMethod().toString()); request.getHeaders().getHeadersAsMap().forEach((name, values) -> values.forEach(value -> builder.addHeader(name, value))); Optional.ofNullable(request.getBody()).ifPresent(body -> { if (body instanceof StringHttpRequestBody) { final String bodyAsString = ((StringHttpRequestBody) body).getString(); builder.setBody(bodyAsString); if (!request.getHeaders().findFlatHeader(HttpHeaders.CONTENT_TYPE).isPresent()) { builder.addHeader(HttpHeaders.CONTENT_TYPE, "application/json; charset=utf-8"); } } else if (body instanceof FileHttpRequestBody) { builder.setBody(((FileHttpRequestBody) body).getFile()); } else if (body instanceof FormUrlEncodedHttpRequestBody) { final FormUrlEncodedHttpRequestBody formUrlEncodedHttpRequestBody = (FormUrlEncodedHttpRequestBody) body; formUrlEncodedHttpRequestBody.getParameters().forEach(pair -> builder.addFormParam(pair.getName(), pair.getValue())); } }); return builder.build(); }
Request asAhcRequest(final HttpRequest request) { final RequestBuilder builder = new RequestBuilder() .setUrl(request.getUrl()) .setMethod(request.getHttpMethod().toString()); request.getHeaders().getHeadersAsMap().forEach((name, values) -> values.forEach(value -> builder.addHeader(name, value))); Optional.ofNullable(request.getBody()).ifPresent(body -> { if (body instanceof StringHttpRequestBody) { final String bodyAsString = ((StringHttpRequestBody) body).getString(); builder.setBody(bodyAsString); if (!request.getHeaders().findFlatHeader(HttpHeaders.CONTENT_TYPE).isPresent()) { builder.addHeader(HttpHeaders.CONTENT_TYPE, "application/json; charset=utf-8"); } } else if (body instanceof FileHttpRequestBody) { builder.setBody(((FileHttpRequestBody) body).getFile()); } else if (body instanceof FormUrlEncodedHttpRequestBody) { final FormUrlEncodedHttpRequestBody formUrlEncodedHttpRequestBody = (FormUrlEncodedHttpRequestBody) body; formUrlEncodedHttpRequestBody.getParameters().forEach(pair -> builder.addFormParam(pair.getName(), pair.getValue())); } }); return builder.build(); }