首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >安卓: AndroidHttpClient -如何设置超时?

安卓: AndroidHttpClient -如何设置超时?
EN

Stack Overflow用户
提问于 2011-04-20 12:15:47
回答 5查看 24.4K关注 0票数 7

我遵循了kuester2000's answer的指示,但是我的超时设置似乎不起作用。

代码语言:javascript
复制
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:连接.超时“

有人能帮我吗?哪里出错了?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-04-21 12:02:13

我确实错过了将params附加到我的http请求,但是在我的示例中,正确的方法是

代码语言:javascript
复制
httpGet.setParams(httpParams);

在调用httpClient.execute(httpGet)之前。

刚加了那句话,效果很好。

票数 6
EN

Stack Overflow用户

发布于 2011-04-20 12:23:09

您不使用httpParams参数,必须将它们提供给HTTPClient。所以不会像这样工作。在你的链接中,订单是正确的!尝试以下顺序:首先创建Params并将其提供给HTTPClient。

代码语言:javascript
复制
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);
票数 9
EN

Stack Overflow用户

发布于 2012-08-29 15:52:44

要在客户机本身上设置的另一个选项是:

代码语言:javascript
复制
AndroidHttpClient client = AndroidHttpClient.newInstance("Client V/1.0");
HttpConnectionParams.setConnectionTimeout(this.client.getParams(), 3000);
HttpConnectionParams.setSoTimeout(this.client.getParams(), 5000);

这应该会导致那些特定的对撞机被设置..。

HTH

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5730078

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档