本文整理了Java中org.asynchttpclient.RequestBuilder
类的一些代码示例,展示了RequestBuilder
类的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。RequestBuilder
类的具体详情如下:
包路径:org.asynchttpclient.RequestBuilder
类名称:RequestBuilder
[英]Builder for a Request. Warning: mutable and not thread-safe! Beware that it holds a reference to the Request instance it builds, so modifying the builder will modify the request even after it has been built.
[中]一个请求。警告:可变且不线程安全!请注意,它包含对其生成的请求实例的引用,因此即使在生成请求之后,修改生成器也会修改请求。
代码示例来源:origin: AsyncHttpClient/async-http-client
/**
* Converts retrofit request to async-http-client request.
*
* @param request retrofit request
* @return async-http-client request.
*/
@SneakyThrows
protected org.asynchttpclient.Request createRequest(@NonNull Request request) {
// create async-http-client request builder
val requestBuilder = new RequestBuilder(request.method());
// request uri
requestBuilder.setUrl(request.url().toString());
// set headers
val headers = request.headers();
headers.names().forEach(name -> requestBuilder.setHeader(name, headers.values(name)));
// set request body
val body = request.body();
if (body != null && body.contentLength() > 0) {
if (body.contentType() != null) {
requestBuilder.setHeader(HttpHeaderNames.CONTENT_TYPE, body.contentType().toString());
}
// write body to buffer
val okioBuffer = new Buffer();
body.writeTo(okioBuffer);
requestBuilder.setBody(okioBuffer.readByteArray());
}
// customize the request builder (external customizer can change the request url for example)
runConsumers(this.requestCustomizers, requestBuilder);
return requestBuilder.build();
}
代码示例来源:origin: AsyncHttpClient/async-http-client
public Builder addHeader(CharSequence name, Object value) {
requestBuilder.addHeader(name, value);
return this;
}
代码示例来源:origin: AsyncHttpClient/async-http-client
@Test
public void testSettingHeadersUsingMapWithStringKeys() {
Map<String, List<String>> headers = new HashMap<>();
headers.put("X-Forwarded-For", singletonList("10.0.0.1"));
RequestBuilder requestBuilder = new RequestBuilder();
requestBuilder.setHeaders(headers);
requestBuilder.setUrl("http://localhost");
Request request = requestBuilder.build();
assertEquals(request.getHeaders().get("X-Forwarded-For"), "10.0.0.1");
}
}
代码示例来源:origin: AsyncHttpClient/async-http-client
private Builder(SimpleAsyncHttpClient client) {
this.requestBuilder = new RequestBuilder(client.requestBuilder.build());
this.defaultThrowableHandler = client.defaultThrowableHandler;
this.errorDocumentBehaviour = client.errorDocumentBehaviour;
this.enableResumableDownload = client.resumeEnabled;
this.ahc = client.getAsyncHttpClient();
this.listener = client.listener;
}
代码示例来源:origin: AsyncHttpClient/async-http-client
public static RequestBuilder request(String method, String url) {
return new RequestBuilder(method).setUrl(url);
}
代码示例来源:origin: AsyncHttpClient/async-http-client
public Future<Response> post(BodyGenerator bodyGenerator) throws IOException {
RequestBuilder r = rebuildRequest(requestBuilder.build());
r.setMethod("POST");
r.setBody(bodyGenerator);
return execute(r, null, null);
}
代码示例来源:origin: org.asynchttpclient/async-http-client-netty4
final RequestBuilder requestBuilder = new RequestBuilder(switchToGet ? "GET" : originalMethod)//
.setCookies(request.getCookies())//
.setConnectionPoolPartitioning(request.getConnectionPoolPartitioning())//
.setFollowRedirect(true)//
.setLocalInetAddress(request.getLocalAddress())//
.setNameResolver(request.getNameResolver())//
.setProxyServer(request.getProxyServer())//
.setRealm(request.getRealm())//
.setRequestTimeout(request.getRequestTimeout());
requestBuilder.setBodyCharset(request.getBodyCharset());
if (MiscUtils.isNonEmpty(request.getFormParams()))
requestBuilder.setFormParams(request.getFormParams());
else if (request.getStringData() != null)
requestBuilder.setBody(request.getStringData());
else if (request.getByteData() != null)
requestBuilder.setBody(request.getByteData());
else if (request.getByteBufferData() != null)
requestBuilder.setBody(request.getByteBufferData());
else if (request.getBodyGenerator() != null)
requestBuilder.setBody(request.getBodyGenerator());
requestBuilder.setHeaders(propagatedHeaders(request, realm, switchToGet));
Cookie c = CookieDecoder.decode(cookieStr);
if (c != null)
requestBuilder.addOrReplaceCookie(c);
requestBuilder.setHeaders(propagatedHeaders(future.getRequest(), realm, switchToGet));
代码示例来源:origin: org.asynchttpclient/async-http-client-netty4-provider
boolean switchToGet = !originalMethod.equals("GET") && (statusCode == 303 || (statusCode == 302 && !config.isStrict302Handling()));
final RequestBuilder requestBuilder = new RequestBuilder(switchToGet ? "GET" : originalMethod)//
.setCookies(request.getCookies())//
.setConnectionPoolPartitioning(request.getConnectionPoolPartitioning())//
.setFollowRedirect(true)//
.setLocalInetAddress(request.getLocalAddress())//
.setNameResolver(request.getNameResolver())//
.setProxyServer(request.getProxyServer())//
.setRealm(request.getRealm())//
.setRequestTimeout(request.getRequestTimeout())//
.setVirtualHost(request.getVirtualHost());
requestBuilder.setHeaders(propagatedHeaders(request, realm, switchToGet));
Cookie c = CookieDecoder.decode(cookieStr);
if (c != null)
requestBuilder.addOrReplaceCookie(c);
requestBuilder.setHeaders(propagatedHeaders(future.getRequest(), realm, switchToGet));
final Request nextRequest = requestBuilder.setUrl(newUrl).build();
代码示例来源:origin: AsyncHttpClient/async-http-client
@Test
public void testUserProvidedRequestMethod() {
Request req = new RequestBuilder("ABC").setUrl("http://foo.com").build();
assertEquals(req.getMethod(), "ABC");
assertEquals(req.getUrl(), "http://foo.com");
}
代码示例来源:origin: AsyncHttpClient/async-http-client
final RequestBuilder requestBuilder = new RequestBuilder(switchToGet ? GET : originalMethod)
.setChannelPoolPartitioning(request.getChannelPoolPartitioning())
.setFollowRedirect(true)
.setLocalAddress(request.getLocalAddress())
.setNameResolver(request.getNameResolver())
.setProxyServer(request.getProxyServer())
.setRealm(request.getRealm())
.setRequestTimeout(request.getRequestTimeout());
requestBuilder.setCharset(request.getCharset());
if (isNonEmpty(request.getFormParams()))
requestBuilder.setFormParams(request.getFormParams());
else if (request.getStringData() != null)
requestBuilder.setBody(request.getStringData());
else if (request.getByteData() != null)
requestBuilder.setBody(request.getByteData());
else if (request.getByteBufferData() != null)
requestBuilder.setBody(request.getByteBufferData());
else if (request.getBodyGenerator() != null)
requestBuilder.setBody(request.getBodyGenerator());
requestBuilder.setHeaders(propagatedHeaders(request, realm, keepBody));
if (!cookies.isEmpty())
for (Cookie cookie : cookies)
requestBuilder.addOrReplaceCookie(cookie);
requestBuilder.setVirtualHost(request.getVirtualHost());
代码示例来源:origin: com.typesafe.play/play-java-ws
RequestBuilder builder = new RequestBuilder(method);
builder.setUrl(url);
builder.setQueryParams(queryParameters);
stringListMap.forEach((key, values) -> values.forEach(value -> builder.addFormParam(key, value)));
} else {
builder.setBody(stringBody);
builder.setCharset(charset);
} else if (body instanceof JsonNode) {
JsonNode jsonBody = (JsonNode) body;
builder.setBody(new ByteArrayBodyGenerator(bodyBytes));
} else if (body instanceof File) {
File fileBody = (File) body;
FileBodyGenerator bodyGenerator = new FileBodyGenerator(fileBody);
builder.setBody(bodyGenerator);
} else if (body instanceof InputStream) {
InputStream inputStreamBody = (InputStream) body;
InputStreamBodyGenerator bodyGenerator = new InputStreamBodyGenerator(inputStreamBody);
builder.setBody(bodyGenerator);
} else if (body instanceof Source) {
Publisher<ByteBuffer> publisher = sourceBody.map(ByteString::toByteBuffer)
.runWith(Sink.asPublisher(AsPublisher.WITHOUT_FANOUT), materializer);
builder.setBody(publisher, contentLength);
} else {
throw new IllegalStateException("Impossible body: " + body);
代码示例来源:origin: cloudbees/zendesk-java-client
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();
}
代码示例来源:origin: org.asynchttpclient/async-http-client-netty4
final Request nextRequest = new RequestBuilder(future.getRequest()).setHeaders(request.getHeaders()).setRealm(newRealm).build();
代码示例来源:origin: AsyncHttpClient/async-http-client
/**
* 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();
}
代码示例来源:origin: com.tradeshift.sdk/tradeshift-sdk-network
@Override
public CompletionStage<JsonStructure> queryAsJson(ConnectionRequestsQuery query) {
Objects.requireNonNull(query);
if (!MediaType.APPLICATION_JSON.equals(acceptMimeType)) {
throw new UnsupportedOperationException("This method is only available with a JSON deserializer.");
}
final String url = String.format("%s/rest/external/network/requests", endpoint);
return execute(authenticated(query, new RequestBuilder(GET)
.setUrl(url)
.setHeader(HttpHeaders.ACCEPT, acceptMimeType)))
.thenApply(r -> {
if (r.getStatusCode() == 200) {
return deserializer.parseToObject(r.getResponseBodyAsStream());
}
throw parseHttpStatusCode(query.getUserContext(), r);
});
}
代码示例来源:origin: AsyncHttpClient/async-http-client
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;
}
};
代码示例来源:origin: io.gravitee.resource/gravitee-resource-oauth2
RequestBuilder builder = new RequestBuilder();
builder.setUrl(configuration().getServerURL());
builder.setMethod(configuration().getHttpMethod());
builder.setHeaders(headers);
builder.setQueryParams(queryParams);
client.executeRequest(builder.build(), new AsyncCompletionHandler<Void>() {
@Override
public Void onCompleted(org.asynchttpclient.Response clientResponse) throws Exception {
代码示例来源:origin: AsyncHttpClient/async-http-client
@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");
}
代码示例来源:origin: AsyncHttpClient/async-http-client
RequestBuilder nextRequestBuilder = new RequestBuilder(future.getCurrentRequest()).setHeaders(requestHeaders);
if (future.getCurrentRequest().getUri().isSecured()) {
nextRequestBuilder.setMethod(CONNECT);
final Request nextRequest = nextRequestBuilder.build();
代码示例来源:origin: AsyncHttpClient/async-http-client
@Test
public void testChaining() {
Request request = get("http://foo.com").addQueryParam("x", "value").build();
Request request2 = new RequestBuilder(request).build();
assertEquals(request2.getUri(), request.getUri());
}
内容来源于网络,如有侵权,请联系作者删除!