kai*_*aur 7 java apache-httpclient-4.x
我正在创建新的HttpClient,通过在其构造函数中传递ThreadSafeClientConnManager和HttpParams,但它总是抛出错误的请求错误.为了弄清楚出了什么问题我调试了它但都是徒劳的.为我提供一些解决方案这是我的代码块
sc.register(new Scheme("http", PlainSocketFactory.getSocketFactory(), 80));
sc.register(new Scheme("https", SSLSocketFactory.getSocketFactory(), 443));
HttpParams basicParams = new BasicHttpParams();
ThreadSafeClientConnManager connmgr = new ThreadSafeClientConnManager(basicParams, sc);
ConnManagerParams.setMaxConnectionsPerRoute(
basicParams,
// if we have more than 5 concurrent leads, good problem to have
new ConnPerRoute() {
public int getMaxForRoute(HttpRoute httproute) {
return 5;
}
});
g_client = new DefaultHttpClient(connmgr, basicParams);
// It's a lead, be forgiving with timeout
g_client.getParams().setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, 5000);
g_client.getParams().setParameter(CoreConnectionPNames.SO_TIMEOUT, 5000);
ConnManagerParams.setTimeout(basicParams, 2000);
Run Code Online (Sandbox Code Playgroud)
当我g_client.execute(postMethod);在我的代码中调用时,显示400状态代码表示我的请求出错.如果我在DefaultHttpClient构造函数中传递null
g_client = new DefaultHttpClient(connmgr, null);
Run Code Online (Sandbox Code Playgroud)
客户端正在成功执行,但由于我需要基本的param集,所以它不正确maxconnectionperroute.我在这里粘贴了令人怀疑的代码.请看看并帮助我.我被困在这里.
我使用的是HttpClient 4.0版本.
使用默认(工作)构造函数创建对象。然后按照所使用版本的 Apache HttpClient 文档中的定义修改对象的属性。4.5 的示例:
要管理每个路由的最大连接数等内容,请查看该文档(涉及不同的类):
http://hc.apache.org/httpcomponents-client-ga/tutorial/html/connmgmt.html
| 归档时间: |
|
| 查看次数: |
6740 次 |
| 最近记录: |