当我在ics上使用我的应用程序时,当我将我的wifi网络从networkA改为networkB后,所有的图片请求都开始返回并返回一个异常。
失败并出现异常
> org.apache.http.conn.HttpHostConnectException: Connection to
> https://m1.testapp.com refused at
> org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:183)
> at
> org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164)
> at
> org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119)
> at
> org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:360)
> at
> org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555)
> at
> org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)
> at
> org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465)
> at
> com.testApp.android.ws.PooledRequestProcessor$Runner.run(PooledRequestProcessor.java:298)
> at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
> at java.lang.Thread.run(Thread.java:856) Caused by:
> java.net.ConnectException: failed to connect to /109.233.153.38 (port
> 443) after 20000ms: isConnected failed: EHOSTUNREACH (No route to
> host) at
> org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:181)
> ... 10 more Caused by: java.net.SocketException: failed to connect
> to /109.233.153.38 (port 443) after 20000ms: isConnected failed:
> EHOSTUNREACH (No route to host) at
> libcore.io.IoBridge.isConnected(IoBridge.java:220) at
> libcore.io.IoBridge.connectErrno(IoBridge.java:152) at
> libcore.io.IoBridge.connect(IoBridge.java:112) at
> java.net.PlainSocketImpl.connect(PlainSocketImpl.java:192) at
> java.net.PlainSocketImpl.connect(PlainSocketImpl.java:459) at
> java.net.Socket.connect(Socket.java:842) at
> org.apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:119)
> at
> org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:144)
> ... 10 more Caused by: libcore.io.ErrnoException: isConnected
> failed: EHOSTUNREACH (No route to host) at
> libcore.io.IoBridge.isConnected(IoBridge.java:201)
最奇怪的是,即使卸载并重新安装应用程序也无法修复它,只需关闭并打开手机即可。
我在这里看到了类似的问题,http://groups.google.com/group/newsrob/browse_thread/thread/ea2f26d9d1753b79/5800e268eeab399c#5800e268eeab399c。这个问题不会发生在4.0.3版本的手机上,只发生在4.0.1版本的手机上,而且这个更新似乎还不能在欧洲使用。
发布于 2012-08-27 22:37:04
也许由于某些原因,转换发生需要一段时间?您可以在发出请求之前检查是否有活动的网络连接:
ConnectivityManager connectivityManager = (ConnectivityManager) getApplicationContext().getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo();
if (networkInfo != null && networkInfo.isConnected() && networkInfo.isAvailable())
{
// DO WHAT YOU NEED TO DO ON THE NETWORK
}
else
{
// PROMPT USER THAT NETWORK IS DISCONNECTED
Toast.makeText(this, "There is no active network connection!", 5000).show();
}
发布于 2013-01-02 20:42:47
而切换和建立新的网络设备可能需要一些时间。下面的代码可能会对您有所帮助。
ConnectivityManager connMngr = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
try {
return connMngr.getActiveNetworkInfo().isConnectedOrConnecting();
}
catch (NullPointerException npe) {
return false;
}
发布于 2014-07-15 18:27:55
看起来你的TCP协议有问题。可能是在WiFi或3G信号较弱的情况下。对它使用try/catch。
https://stackoverflow.com/questions/8787285
复制相似问题