HttpURLConnection.setConnectTimeout 不起作用

问题描述 投票:0回答:1

我有一个 Android 应用程序,它连接到服务器以搜索更新。 如果服务器需要很长时间才能响应(+500ms),我必须完成我的方法并继续程序。

我已经将

readTimeout
connectTimeout
设置为 500 ms,但即便如此,我的方法在这一行中也花费了大约 30 秒:
c.connect();

这是我的代码:

HttpURLConnection c = (HttpURLConnection) updateUrl.openConnection();
c.setConnectTimeout(500);
c.setReadTimeout(500);
c.setRequestMethod("GET");
c.setDoOutput(true);
c.connect();  // the program stops here

我需要做什么?

android timeout
1个回答
1
投票

非常感谢,阿索克!!我使用 org.apache.http.client.HttpClient 解决了:

HttpParams httpParameters = new BasicHttpParams();
HttpConnectionParams.setConnectionTimeout(httpParameters, 500);
HttpConnectionParams.setSoTimeout(httpParameters, 500);

HttpGet httpget = new HttpGet(updateUrl.toURI());
DefaultHttpClient httpClient = new DefaultHttpClient();
httpClient.setParams(httpParameters);

HttpResponse response = httpClient.execute(httpget);
HttpEntity entity = response.getEntity();
InputStream is = entity.getContent();

//download file.....
© www.soinside.com 2019 - 2024. All rights reserved.