获取“SocketException:没有到主机的路由”而不是预期的“SocketTimeoutException”

时间:2013-06-04 16:24:38

标签: android httpclient apache-httpclient-4.x

我使用DefaultHttpClient来完成几个下载。在没有使用enternet的情况下,我仅在第一次下载时获得SocketTimeoutException,在下次下载时,我获得java.net.SocketException: No route to host。为什么会出现?我为每个请求使用新的httpClient。我需要为每个请求获取SocketTimeoutException,因为我应该在下载尝试之间保持超时延迟。

1 个答案:

答案 0 :(得分:2)

查看此答案:

Android HttpUrlConnection HttpPost receive a SocketException: no route to host

Android App - Java.Net.SocketException: No route to host

here一些解释:

  

您的192.168.1.114地址是由(动态)分配的DHCP地址   你的路由器到你的电脑。因此,模拟器可以看到它。

     

但是,根据您的WiFi设置方式,Android可能会出现问题   不同的路由器/子网,看不到192.168.1.114。你可以检查一下   通过在Android的地址栏中键入192.168.1.114   浏览器。

     

如果你的Android看不到192.168.1.114,那么你必须这样做   或者更改路由器上的路由规则以使其可见,或者   为它添加DNS查找。