Java 类io.vertx.core.http.RequestOptions 实例源码

项目:incubator-servicecomb-java-chassis    文件:VertxHttpMethod.java   
HttpClientRequest createRequest(HttpClient client, Invocation invocation, IpPort ipPort, String path,
    AsyncResponse asyncResp) {
  URIEndpointObject endpoint = (URIEndpointObject) invocation.getEndpoint().getAddress();
  RequestOptions requestOptions = new RequestOptions();
  requestOptions.setHost(ipPort.getHostOrIp())
      .setPort(ipPort.getPort())
      .setSsl(endpoint.isSslEnabled())
      .setURI(path);

  HttpMethod method = getMethod(invocation);
  LOGGER.debug("Sending request by rest, method={}, qualifiedName={}, path={}, endpoint={}.",
      method,
      invocation.getMicroserviceQualifiedName(),
      path,
      invocation.getEndpoint().getEndpoint());
  HttpClientRequest request = client.request(method, requestOptions, response -> {
    handleResponse(invocation, response, asyncResp);
  });
  return request;
}
项目:app-ms    文件:Conversions.java   
/**
 * Builds the request options suitable for HttpClient from a URI and a relative
 * path.
 *
 * @param uri
 *            URI
 * @return request options
 */
public static RequestOptions toRequestOptions(final URI uri,
    final String relativeUri) {

    final RequestOptions options = new RequestOptions()
        .setSsl("https".equals(uri.getScheme()))
        .setHost(uri.getHost());
    if (uri.getPort() > 0) {
        options.setPort(uri.getPort());
    } else if (options.isSsl()) {
        options.setPort(443);
    } else {
        options.setPort(80);
    }
    final String rawPath = uri.getRawPath() + relativeUri;
    if (uri.getRawQuery() == null) {
        options.setURI(rawPath);
    } else {
        options.setURI(rawPath + "?" + uri.getRawQuery());
    }
    return options;
}
项目:app-ms    文件:Conversions.java   
public static RequestOptions toRequestOptions(final URI uri) {

        final RequestOptions options = new RequestOptions()
            .setSsl("https".equals(uri.getScheme()))
            .setHost(uri.getHost());
        if (uri.getPort() > 0) {
            options.setPort(uri.getPort());
        } else if (options.isSsl()) {
            options.setPort(443);
        } else {
            options.setPort(80);
        }
        if (uri.getRawQuery() == null) {
            options.setURI(uri.getRawPath());
        } else {
            options.setURI(uri.getRawPath() + "?" + uri.getRawQuery());
        }
        return options;
    }
项目:app-ms    文件:RequestOptionsTest.java   
@Test
public void testConversions() {

    final URI uri = URI.create("https://github.com/eclipse/vert.x/blob/a30703379a06502faaae0aeda1eaa9a9b1152004/src/main/java/io/vertx/core/net/impl/SSLHelper.java");
    final RequestOptions requestOptions = Conversions.toRequestOptions(uri);
    Json.prettyPrint(requestOptions);

}
项目:app-ms    文件:RequestOptionsTest.java   
@Test
public void testConversionsWithEscapedDataQuery() {

    final URI uri = URI.create("https://encrypted.google.com/search?q=face+book+%25+prime+%3F&oq=face+book+%25+prime+%3F&gs_l=psy-ab.3..0i13k1l10.12446.12733.0.13108.2.2.0.0.0.0.140.248.0j2.2.0....0...1.1.64.psy-ab..0.2.246....0.QRedmYd5GAY");
    final RequestOptions requestOptions = Conversions.toRequestOptions(uri);
    Json.prettyPrint(requestOptions);

}
项目:app-ms    文件:RequestOptionsTest.java   
@Test
public void testConversionsWithQuery() {

    final URI uri = URI.create("https://news.google.com/news/?ned=ca&hl=en-CA");
    final RequestOptions requestOptions = Conversions.toRequestOptions(uri);
    Json.prettyPrint(requestOptions);

}
项目:knotx    文件:HttpRepositoryConnectorProxyImpl.java   
@Override
public void process(ClientRequest request, Handler<AsyncResult<ClientResponse>> result) {
  MultiMap requestHeaders = buildHeaders(clientDestination.getString("hostHeader"),
      request.getHeaders());

  RequestOptions httpRequestData = buildRequestData(request);

  if (LOGGER.isDebugEnabled()) {
    LOGGER.debug("GET HTTP Repository: {}://{}:{}/{} with headers [{}]",
        httpRequestData.isSsl() ? "https" : "http",
        httpRequestData.getHost(),
        httpRequestData.getPort(),
        httpRequestData.getURI(),
        DataObjectsUtil.toString(requestHeaders)
    );
  }

  get(httpClient, httpRequestData, requestHeaders)
      .doOnNext(this::traceHttpResponse)
      .flatMap(this::processResponse)
      .subscribe(
          response -> result.handle(Future.succeededFuture(response)),
          error -> {
            LOGGER.error(ERROR_MESSAGE, error);
            result.handle(Future.succeededFuture(toInternalError()));
          }
      );
}
项目:knotx    文件:HttpRepositoryConnectorProxyImpl.java   
private RequestOptions buildRequestData(ClientRequest request) {
  return new RequestOptions()
      .setSsl(clientDestination.getString("scheme", "http").equals("https") ? true : false)
      .setURI(buildRepoUri(request))
      .setPort(clientDestination.getInteger("port"))
      .setHost(clientDestination.getString("domain"));
}
项目:knotx    文件:HttpRepositoryConnectorProxyImpl.java   
private Observable<HttpClientResponse> get(HttpClient client, RequestOptions requestOptions,
    MultiMap headers) {
  return Observable.unsafeCreate(subscriber -> {
    HttpClientRequest req = client.get(requestOptions);
    req.headers().addAll(headers);
    if (headers.get(HttpHeaderNames.HOST.toString()) != null) {
      req.setHost(headers.get(HttpHeaderNames.HOST.toString()));
    }
    Observable<HttpClientResponse> resp = req.toObservable();
    resp.subscribe(subscriber);
    req.end();
  });
}
项目:app-ms    文件:UnprotectedHandler.java   
@Override
public void handle(final RoutingContext context) {

    // if null or it is marked as protected then go on.
    final PathContext pathContext = PathContext.get(context);
    if (pathContext == null) {
        context.next();
        return;
    }

    LOG.debug("Handling {} with from={} to={} protected={} ended={}", context, pathContext.getFrom(), pathContext.getTo(), pathContext.isProtected(), context.request().isEnded());

    final HttpServerRequest contextRequest = context.request();

    contextRequest.setExpectMultipart(context.parsedHeaders().contentType().isPermitted() && "multipart".equals(context.parsedHeaders().contentType().component()));
    final RequestOptions clientRequestOptions = Conversions.toRequestOptions(pathContext.getTo(), contextRequest.uri().substring(pathContext.getFrom().length()));

    final HttpClientRequest clientRequest = httpClient
        .request(contextRequest.method(), clientRequestOptions, clientResponse -> {
            contextRequest.response().setChunked(clientResponse.getHeader(HttpHeaders.CONTENT_LENGTH) == null)
                .setStatusCode(clientResponse.statusCode());
            clientResponse.headers().forEach(e -> contextRequest.response().putHeader(e.getKey(), e.getValue()));
            clientResponse.endHandler(v -> contextRequest.response().end());
            Pump.pump(clientResponse, contextRequest.response()).start();
        }).exceptionHandler(context::fail)
        .setChunked(true);

    StreamSupport.stream(contextRequest.headers().spliterator(), false)
        .filter(Predicates.HEADER_FORWARDABLE)
        .forEach(e -> clientRequest.putHeader(e.getKey(), e.getValue()));

    clientRequest.putHeader(REQUEST_ID, (String) context.get(REQUEST_ID));
    clientRequest.putHeader(DATE, RFC_1123_DATE_TIME.format(now(UTC)));
    final Map<String, String> additionalHeaders = context.get("additional_headers");
    if (additionalHeaders != null) {
        additionalHeaders.forEach(clientRequest::putHeader);
    }
    contextRequest.endHandler(v -> clientRequest.end());
    Pump.pump(contextRequest, clientRequest).start();
    contextRequest.resume();

}
项目:vertx-web    文件:WebClientImpl.java   
@Override
public HttpRequest<Buffer> request(HttpMethod method, RequestOptions requestOptions) {
  return new HttpRequestImpl<>(this, method, requestOptions.isSsl(), requestOptions.getPort(),
          requestOptions.getHost(), requestOptions.getURI(), BodyCodecImpl.BUFFER, options);
}
项目:app-ms    文件:Conversions.java   
/**
 * Builds the request options suitable for HttpClient from a URI.
 *
 * @param uri
 *            URI
 * @return request options
 */
public static RequestOptions toRequestOptions(final URI uri) {

    return toRequestOptions(uri, "");
}
项目:vertx-web    文件:WebClient.java   
/**
 * Create an HTTP request to send to the server at the specified host and port.
 * @param method  the HTTP method
 * @param options  the request options
 * @return  an HTTP client request object
 */
HttpRequest<Buffer> request(HttpMethod method, RequestOptions options);