從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