我遵循了kuester2000's answer的指示,但是我的超时设置似乎不起作用。
try
{
int timeout = 3000;
URL myURL = //some valid URL
AndroidHttpClient = AndroidHttpClient.newInstance("name");
HttpGet httpGet = new HttpGet(myURL.toExternalForm());
HttpParams httpParams = new BasicHttpParams();
HttpConnectionParams.setConnectionTimeout(httpParams, timeout);
HttpConnectionParams.setSoTimeout(httpParams, timeout);
HttpResponse response = httpClient.execute(httpGet);
//...
}
catch (SocketTimeoutException e)
{
e.printStackTrace();
}
catch (ConnectTimeoutException e)
{
e.printStackTrace();
}
catch (IOException e)
{
e.printStackTrace();
}
//...但是,超时值不会改变任何事情。
在我联系的答案中,它还说:
连接超时抛出"java.net.SocketTimeoutException:套接字未连接“和套接字超时"java.net.SocketTimeoutException:操作超时”。
但我两样都不懂。相反,我让"org.apache.http.conn.ConnectTimeoutException:连接.超时“
有人能帮我吗?哪里出错了?
发布于 2011-04-21 12:02:13
我确实错过了将params附加到我的http请求,但是在我的示例中,正确的方法是
httpGet.setParams(httpParams);在调用httpClient.execute(httpGet)之前。
刚加了那句话,效果很好。
发布于 2011-04-20 12:23:09
您不使用httpParams参数,必须将它们提供给HTTPClient。所以不会像这样工作。在你的链接中,订单是正确的!尝试以下顺序:首先创建Params并将其提供给HTTPClient。
HttpParams httpParameters = new BasicHttpParams();
HttpConnectionParams.setConnectionTimeout(httpParameters, 5000);
HttpConnectionParams.setSoTimeout(httpParameters, 10000);
HttpClient client = new DefaultHttpClient(httpParameters);
HttpGet request = new HttpGet(url);
HttpResponse response = client.execute(request);发布于 2012-08-29 15:52:44
要在客户机本身上设置的另一个选项是:
AndroidHttpClient client = AndroidHttpClient.newInstance("Client V/1.0");
HttpConnectionParams.setConnectionTimeout(this.client.getParams(), 3000);
HttpConnectionParams.setSoTimeout(this.client.getParams(), 5000);这应该会导致那些特定的对撞机被设置..。
HTH
https://stackoverflow.com/questions/5730078
复制相似问题