在测试应用程序时,我不断收到仅在以下设备上偶尔发生的错误: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还建议您在遇到任何运输错误时重试


  通常,运输例外是非致命的,可以从
  通过重试失败的方法。


因此,我建议还是使用重试处理程序是一种好习惯

10-06 01:25