【问题标题】:Sporadic UnknownHostException on Samsung Galaxy S II三星 Galaxy S II 上的零星 UnknownHostException
【发布时间】:2012-06-12 00:37:22
【问题描述】:

在测试应用程序时,我不断收到仅在一台设备上偶尔出现的错误:GT-I9100(欧洲)三星 Galaxy S II。这些错误不会出现在任何其他设备上,即使是 SPH-D710 (Sprint) Samsung Galaxy S II。

应用使用的 URL 不会改变。它们与我可以在网络浏览器中输入的内容相同,或者与应用程序的 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。

【问题讨论】:

  • 我在 ACRA 崩溃报告中看到了另一个示例,该报告针对在 Droid Razr 上运行的不同应用程序。该代码使用了 androidHttpClient.execute(httpPost)。硬编码的 URL 完全有效,但抛出了 UnknownHostException
  • 设备没有网络连接时会不会出现UnknownHostException?
  • 互联网连接不稳定(甚至不存在)可能导致 UnknownHostException。
  • 问题很可能是不稳定的 dns 服务器,而不是连接本身。

标签: android httpclient


【解决方案1】:

正如其他人所说,这可能是由不存在的互联网连接引起的。

也许尝试像这样添加请求重试处理程序..

    HttpRequestRetryHandler retryhandler = new DefaultHttpRequestRetryHandler(6, true);

    httpClient.setHttpRequestRetryHandler(retryhandler);

这样,如果互联网瞬间中断,httpclient 可以处理它。 Hereapache 也建议如果你有任何传输错误重试

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

所以我建议最好还是使用重试处理程序

【讨论】:

  • 我没有机会对此进行测试并确定跨设备这是否是解决此零星错误的可靠解决方案...但重试 Internet 连接似乎是共识,也是最好的任何人提出的选项。
【解决方案2】:

UnknownHostException 可能由不可靠或不存在的 Internet 连接引起。你应该有一个 try/catch 块来捕获这些并执行任何必要的步骤来解决问题(也许要求用户检查他们的互联网连接)。

我猜欧洲版问题较多的原因是因为它在这里没有服务(假设你在美国工作)?

【讨论】:

    猜你喜欢
    • 2014-03-07
    • 2011-12-12
    • 2012-01-24
    • 1970-01-01
    • 1970-01-01
    • 2013-02-15
    • 2013-01-18
    • 2011-05-31
    • 1970-01-01
    相关资源
    最近更新 更多