コード例 #1
0
ファイル: VertxServerUtils.java プロジェクト: ravibrk/qbit
  private MultiMap<String, String> buildParams(
      final HttpServerRequest request, final String contentType) {

    if (HttpContentTypes.isFormContentType(contentType)) {

      if (request.params().size() == 0) {
        return new MultiMapWrapper(request.formAttributes());
      } else {
        MultiMap<String, String> newParams = new MultiMapImpl<>();

        request.formAttributes().forEach(entry -> newParams.add(entry.getKey(), entry.getValue()));

        request.params().forEach(entry -> newParams.add(entry.getKey(), entry.getValue()));
        return newParams;
      }
    } else {
      return request.params().size() == 0
          ? MultiMap.empty()
          : new MultiMapWrapper(request.params());
    }
  }
コード例 #2
0
ファイル: VertxServerUtils.java プロジェクト: ravibrk/qbit
  public HttpRequest createRequest(
      final HttpServerRequest request,
      final Buffer buffer,
      final CopyOnWriteArrayList<HttpResponseDecorator> decorators,
      final HttpResponseCreator httpResponseCreator) {

    final MultiMap<String, String> headers =
        request.headers().size() == 0 ? MultiMap.empty() : new MultiMapWrapper(request.headers());

    final String contentType = request.headers().get("Content-Type");

    final byte[] body =
        HttpContentTypes.isFormContentType(contentType) || buffer == null
            ? new byte[0]
            : buffer.getBytes();

    final MultiMap<String, String> params = buildParams(request, contentType);

    final HttpRequestBuilder httpRequestBuilder = HttpRequestBuilder.httpRequestBuilder();

    final String requestPath = request.path();

    httpRequestBuilder
        .setId(requestId.incrementAndGet())
        .setUri(requestPath)
        .setMethod(request.method().toString())
        .setParams(params)
        .setBodyBytes(body)
        .setRemoteAddress(request.remoteAddress().toString())
        .setResponse(
            createResponse(
                requestPath, headers, params, request.response(), decorators, httpResponseCreator))
        .setTimestamp(time == 0L ? Timer.timer().now() : time)
        .setHeaders(headers);

    return httpRequestBuilder.build();
  }