当从android应用程序向外部服务器发送http请求时,重用DefaultHTTPClient
的利弊是什么?我试着在发出周期性的请求时重用aDefaultHTTPClient
,但是我得到了随机的套接字超时(特别是在使用3g时)。
我的代码如下:
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对象)。
有什么建议吗?
最佳答案
你的api级别是什么?
如果您在8或8以上,您可以考虑尝试AndroidHttpClient,这可能指定了更好的套接字超时。
否则,您可以检查如何创建DefaultHttpClient
并尝试指定更长的超时。
关于android - 使用DefaultHTTPClient发出HTTPGet请求时的套接字超时,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5254264/