从Android应用向外部服务器发送HTTP请求时重复使用DefaultHTTPClient
的优缺点是什么?我在尝试定期使用HTTPGet
请求时尝试重复使用DefaultHTTPClient
,但我获得了随机套接字超时(特别是在使用3G时)。使用DefaultHTTPClient进行HTTPGet请求时的套接字超时
我的代码看起来像如下:
public class MyHTTPSender {
private DefaultHTTPClient mClient;
public MyHTTPSender() {
mClient = new DefaultHTTPClient();
}
public void send(String httpAddress) {
HttpGet get = new HttpGet(this.surrogateURL);
HttpResponse response = null;
try {
response = httpClient.execute(get);
// ... consume entity if OK
} catch (Exception e) {
} finally {
if (response != null) {
// do some sanity checks to ensure Entity is there!
response.getEntity().consumeContent();
}
}
}
}
我看不出什么毛病我在做什么。我有一个单独的处理程序,使HTTPPost请求,并完美地工作(使用不同的DefaultHTTPClient对象)。
有什么建议吗?
我开始看到相同的行为,从Android 2.3.3开始。我的应用程序之前工作完美,但现在,升级到2.3.3后,我有时会得到java.net.SocketException:连接超时。我有20秒的套接字超时和连接超时。 – 2011-03-12 14:07:46