org.asynchttpclient.RequestBuilder类的使用及代码示例

x33g5p2x  于2022-01-29 转载在 其他  
字(11.6k)|赞(0)|评价(0)|浏览(227)

本文整理了Java中org.asynchttpclient.RequestBuilder类的一些代码示例,展示了RequestBuilder类的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。RequestBuilder类的具体详情如下:
包路径:org.asynchttpclient.RequestBuilder
类名称: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());
}

相关文章