在我的应用程序中,我使用http连接到我的服务器(我正在同步本地数据库)。这是代码:
HttpClient httpClient = new DefaultHttpClient();
httpClient.getParams().setParameter(CoreProtocolPNames.PROTOCOL_VERSION, HttpVersion.HTTP_1_1);
HttpConnectionParams.setConnectionTimeout(httpClient.getParams(),13500);
HttpConnectionParams.setSoTimeout(httpClient.getParams(),27000);
HttpResponse response = httpClient.execute(httpRequest);
int statusCode = response.getStatusLine().getStatusCode();
HttpEntity entity = response.getEntity();
if (entity != null) {
String data = EntityUtils.toString(entity);
JSONObject jObj = new JSONObject(data);
entity.consumeContent();
}
此代码针对许多httpRequests执行,以从服务器提取数据以及将更新发送到服务器。
直到最近这段代码并没有给我带来任何麻烦,但现在我正在努力解决一个奇怪的问题:有时候代码可以正常工作,但有时我得到的只是超时。
更多细节 - 当它不起作用时,它不会像我一样偶尔超时 - 我发送的每个请求最终都会超时。我可以重新启动应用程序并查看此行为,然后在几次应用程序重新启动后,它就像解除了诅咒 - 没有一次超时。然后,我所得到的只是超时。
我很确定问题出在手机端,因为我也有一个iPhone应用程序与同一个应用程序通话,没有任何问题。还有好几次我用一个Android设备观察到这个问题,而另一个设备上的同一个app工作正常。
我在这里缺少什么?