下面列出了怎么用org.apache.http.impl.io.DefaultHttpResponseParser的API类实例代码及写法,或者点击链接到github查看源代码。
/**
* Deserializes raw payload into HttpResponse object.
*
* @param rawData raw http payload
* @return HttpResponse object
*/
public static HttpResponse parseHttpResponse(byte[] rawData) {
SessionInputBufferImpl sessionInputBuffer =
new SessionInputBufferImpl(
new HttpTransportMetricsImpl(), HTTP_PAYLOAD_BUFFER);
sessionInputBuffer.bind(new ByteArrayInputStream(rawData));
DefaultHttpResponseParser responseParser =
new DefaultHttpResponseParser(sessionInputBuffer);
try {
return responseParser.parse();
} catch (IOException | HttpException e) {
log.warn("Failed to parse HttpResponse, due to {}", e);
}
return null;
}
private ExpectedResult parseExpectedResponse(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)));
DefaultHttpResponseParser defaultHttpResponseParser = new DefaultHttpResponseParser(buffer);
ExpectedResult.ExpectedResultBuilder builder = expectedResult();
String body = null;
try {
HttpResponse httpResponse = defaultHttpResponseParser.parse();
StatusLine statusLine = httpResponse.getStatusLine();
builder.withStatus(statusLine.getStatusCode());
for (Header header : httpResponse.getAllHeaders()) {
builder.withHeader(header.getName(), header.getValue());
}
if (buffer.hasBufferedData()) {
body = "";
while (buffer.hasBufferedData()) {
body += (char) buffer.read();
}
}
builder.withBody(body);
} catch (IOException | HttpException e) {
e.printStackTrace();
}
return builder.build();
}