在测试应用程序时,我不断收到仅在以下设备上偶尔发生的错误:GT-I9100(欧洲)三星Galaxy S II。这些错误在其他任何设备上都不会发生,甚至SPH-D710(Sprint)三星Galaxy S II也不会出现。
应用程序使用的URL不变。它们与我可以在Web浏览器中键入的内容相同,也与应用程序的iOS和桌面版本相同。但是有时他们抛出UnknownHostException,有时却没有。
这是我正在使用的代码的大量清理版本:
AndroidHttpClient client = AndroidHttpClient.newInstance(activity.getString(R.string.user_agent));
HttpPost httpPost = new HttpPost("http://" + subdomainId + ".website.com/doSomething.aspx");
try {
// Add your data
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
nameValuePairs.add(new BasicNameValuePair("parameter1", value1));
nameValuePairs.add(new BasicNameValuePair("parameter2", value2));
httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
// Execute HTTP Post Request
HttpContext httpContext = new BasicHttpContext();
HttpResponse response = client.execute(httpPost, httpContext);
... ...
三星Galaxy S II是否有任何怪异现象可能导致这种情况?它正在运行Android 2.3.6。
最佳答案
正如其他人所说,这可能是由于互联网连接不存在引起的。
也许尝试像这样添加请求重试处理程序。
HttpRequestRetryHandler retryhandler = new DefaultHttpRequestRetryHandler(6, true);
httpClient.setHttpRequestRetryHandler(retryhandler);
这样,如果互联网中断了一秒钟,您的httpclient就可以处理它。 Here apache还建议您在遇到任何运输错误时重试
通常,运输例外是非致命的,可以从
通过重试失败的方法。
因此,我建议还是使用重试处理程序是一种好习惯