Java 类org.apache.http.impl.io.DefaultHttpRequestParser 实例源码

项目:BUbiNG    文件:HttpRequestWarcRecord.java   
private static HttpRequest readPayload(final BoundSessionInputBuffer buffer) throws IOException {
    DefaultHttpRequestParser requestParser = new DefaultHttpRequestParser(buffer);
    try {
        return requestParser.parse();
    } catch (HttpException e) {
        throw new WarcFormatException("Can't parse the request", e);
    }
}
项目:pcap-reconst    文件:RecordedHttpMessageParser.java   
public static HttpRequest parseRecordedRequest(String reqstring, MessageMetadata messdata) throws IOException, HttpException{
    MessageStringInputBuffer buf = new MessageStringInputBuffer(reqstring);
    DefaultHttpRequestParser parser = new DefaultHttpRequestParser(buf, 
            new BasicLineParser(), 
            new RecordedHttpRequestFactory(messdata), 
            new BasicHttpParams());
    HttpRequest request = parser.parse();
    if(request instanceof HttpEntityEnclosingRequest){
        parseEntity((HttpEntityEnclosingRequest)request, buf);
    }
    return request;
}
项目:timbuctoo    文件:RequestCommand.java   
private HttpRequest parseRequest(Element element, Evaluator evaluator, ResultRecorder resultRecorder) {
  String contents = getTextAndRemoveIndent(element);

  contents = replaceVariableReferences(evaluator, contents, resultRecorder);

  SessionInputBufferImpl buffer = new SessionInputBufferImpl(new HttpTransportMetricsImpl(), contents.length());
  buffer.bind(new ByteArrayInputStream(contents.getBytes(StandardCharsets.UTF_8)));
  DefaultHttpRequestParser defaultHttpRequestParser = new DefaultHttpRequestParser(buffer);
  LinkedListMultimap<String, String> queryParameters = LinkedListMultimap.create();

  String method = "";
  String url = "";
  LinkedListMultimap<String, String> headers = LinkedListMultimap.create();
  String body = null;
  String server = null;
  try {
    org.apache.http.HttpRequest httpRequest = defaultHttpRequestParser.parse();
    method = httpRequest.getRequestLine().getMethod();
    url = httpRequest.getRequestLine().getUri();
    if (url.startsWith("#")) {
      url = "" + evaluator.evaluate(url);
    }
    Matcher matcher = Pattern.compile("(https?://[^/]+)(/.*)").matcher(url);
    if (matcher.matches()) {
      server = matcher.group(1);
      url = matcher.group(2);
    }

    if (url.contains("?")) {
      String[] urlAndQueryParameters = url.split("\\?");
      url = urlAndQueryParameters[0];
      for (String queryParameter : urlAndQueryParameters[1].split("&")) {
        String[] parameter = queryParameter.split("=");

        queryParameters.put(parameter[0], parameter[1]);
      }
    }

    for (Header header : httpRequest.getAllHeaders()) {
      headers.put(header.getName(), header.getValue());
    }

    if (buffer.hasBufferedData()) {
      body = "";

      while (buffer.hasBufferedData()) {
        body += (char) buffer.read();
      }
    }

  } catch (IOException | HttpException e) {
    e.printStackTrace();
  }


  return new HttpRequest(method, url, headers, body, server, queryParameters);
}
项目:lams    文件:AbstractHttpServerConnection.java   
/**
 * Creates an instance of {@link HttpMessageParser} to be used for parsing
 * HTTP requests received over this connection.
 * <p>
 * This method can be overridden in a super class in order to provide
 * a different implementation of the {@link HttpMessageParser} interface or
 * to pass a different implementation of the {@link LineParser} to the
 * the {@link DefaultHttpRequestParser} constructor.
 *
 * @param buffer the session input buffer.
 * @param requestFactory the HTTP request factory.
 * @param params HTTP parameters.
 * @return HTTP message parser.
 */
protected HttpMessageParser<HttpRequest> createRequestParser(
        final SessionInputBuffer buffer,
        final HttpRequestFactory requestFactory,
        final HttpParams params) {
    return new DefaultHttpRequestParser(buffer, null, requestFactory, params);
}