0
以下是從PoolingNHttpClientConnectionManager請求NHttpClientConnection的代碼。調用connFuture.get()無法返回。有人知道爲什麼我正在使用HttpAsyncClient庫httpasyncclient-4.0.1.jarHttpAsyncClient PoolingNHttpClientConnectionManager.requestConnection無法返回?
static NHttpClientConnection httpConn = null;
public static void testOne() throws Exception {
ConnectingIOReactor ioReactor = new DefaultConnectingIOReactor();
PoolingNHttpClientConnectionManager connManager = new PoolingNHttpClientConnectionManager(ioReactor);
connManager.setMaxTotal(100);
long connectTimeout=1;
long leaseTimeout=4;
TimeUnit timeUnit = TimeUnit.SECONDS;
Object state = null;
HttpRoute route = new HttpRoute(new HttpHost("www.google.com", 80));
Future<NHttpClientConnection> connFuture = connManager.requestConnection(route, state, connectTimeout, leaseTimeout, timeUnit,
new FutureCallback<NHttpClientConnection>() {
public void completed(final NHttpClientConnection c) {
System.out.println("completed");
httpConn = c;
}
public void failed(final Exception ex) {
System.out.println("failed");
}
public void cancelled() {
System.out.println("cancelled");
}
});
System.out.println("Step3");
connFuture.get(); // Failed to return
System.out.println("Done");
}