Java Apache HttpAsyncClient读取响应?
}Java Apache HttpAsyncClient读取响应?,java,http,apache-httpcomponents,apache-httpasyncclient,Java,Http,Apache Httpcomponents,Apache Httpasyncclient,} private zcsresponse httPost(URI、对象对象、列表参数、映射头){ HttpPost postRequest=新的HttpPost(uri); HttpResponse HttpResponse=null; 试一试{ addHeaders(postRequest,headers); addPostParams(postRequest、object、params); Future futureResponse=httpClient.execute(postReque
private zcsresponse httPost(URI、对象对象、列表参数、映射头){
HttpPost postRequest=新的HttpPost(uri);
HttpResponse HttpResponse=null;
试一试{
addHeaders(postRequest,headers);
addPostParams(postRequest、object、params);
Future futureResponse=httpClient.execute(postRequest,null);
httpResponse=futuresponse.get();
响应=**读取响应(httpResponse)**
}
私有字符串读取响应(HttpResponse响应)引发IOException{
BufferedReader rd=新的BufferedReader(
新的InputStreamReader(response.getEntity().getContent());
StringBuffer结果=新的StringBuffer();
字符串行=”;
而((line=rd.readLine())!=null){
结果。追加(行);
}
rd.close();
返回result.toString();
}
我对使用ApacheHTTPAsync客户端的代码有以下疑问
private void init() {
#Reactor
ioReactorConfig = IOReactorConfig.custom()
.setIoThreadCount(Runtime.getRuntime().availableProcessors())
.setConnectTimeout(30000)
.setSoTimeout(30000)
.build();
try {
ioReactor = new DefaultConnectingIOReactor(ioReactorConfig);
} catch (IOReactorException e) {
e.printStackTrace();
//TODO handle exception
}
connManager = new PoolingNHttpClientConnectionManager(ioReactor);
httpClient = HttpAsyncClients.custom().setConnectionManager(connManager).build();
private ZCResponse httPost(URI uri, Object object,List<NameValuePair> params, Map<String,String> headers) {
HttpPost postRequest = new HttpPost(uri);
HttpResponse httpResponse = null;
try {
addHeaders(postRequest,headers);
addPostParams(postRequest,object,params);
Future<HttpResponse> futureResponse = httpClient.execute(postRequest, null);
httpResponse = futureResponse.get();
response = **readResponse(httpResponse);**
}
private String readResponse(HttpResponse response) throws IOException {
BufferedReader rd = new BufferedReader(
new InputStreamReader(response.getEntity().getContent()));
StringBuffer result = new StringBuffer();
String line = "";
while ((line = rd.readLine()) != null) {
result.append(line);
}
rd.close();
return result.toString();
}