你好,我之前已经问过这个问题了,但是这次我检查了一下允许所有证书的方法,发现没有引起问题。
我正在开发一个应用程序,也在iPhone上使用。问题出在API请求上。我为所有请求设置了超时时间。有时会出现30到60秒的中断。看起来是应用程序做了几个请求然后就中断了,一直超时,大约45秒后才恢复正常。
我不知道这是服务器问题还是Android的问题。
这个问题在IOS 5的iPhone上没有出现,但在IOS 4上也出现了。
我检查了HttpClient和HttpsURLConnection。
连接是https,我也尝试了直接使用IP地址。
所有请求都有同样的问题,所有请求都在异步任务中。
它们都看起来一样:
DefaultHttpClient client = new HttpSupport().getNewHttpClient();
client.getCredentialsProvider().setCredentials(new AuthScope(AuthScope.ANY_HOST,AuthScope.ANY_PORT),new UsernamePasswordCredentials(user, pass));
HttpGet httget = new HttpGet("xxxxxxxxxxxxxxxxxxxxxxx");
httget.setHeader("Accept", "application/json");
HttpResponse respond = null;
try
{
respond = client.execute(httget);
}
catch (ClientProtocolException e)
{
Log.e(TAG,"getEvents, ClientProtocolException");
}
catch (IOException e)
{
Log.e(TAG,"getEvents, IOException: " + e.getMessage());
}
我的HttpSupport类的代码在我之前的问题中:Android - API Requests
这可能是服务器的问题吗? 感谢您的任何帮助。
最近,我注意到应用程序卡在client.execute上......尝试像这样操作:android httpclient hangs on second request to the server (connection timed out),但没有帮助。也许不是api的问题,而是Android本身的问题。这个应用程序经常指向api,但对于大多数请求来说一切都很好。
仍然无法摆脱30-45秒的挂起。
今天我再次测试了应用程序,我注意到错误只发生在三星平板电脑上的Wi-Fi连接(3.2版本)。在Wildfire上使用2.3.7版本(Wi-Fi和3g)似乎一切正常。我并不是说在移动设备上不会出现问题,但在测试时我并没有注意到超时。