解决方案 »

  1.   

    08-21 14:35:37.919: W/System.err(6085): java.net.SocketTimeoutException: failed to connect to /180.186.31.33 (port 8080) after 10000ms
    08-21 14:35:37.919: W/System.err(6085):  at libcore.io.IoBridge.connectErrno(IoBridge.java:159)
    08-21 14:35:37.929: W/System.err(6085):  at libcore.io.IoBridge.connect(IoBridge.java:112)
    08-21 14:35:37.929: W/System.err(6085):  at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:192)
    08-21 14:35:37.929: W/System.err(6085):  at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:460)
      

  2.   

    /**
     * 连接超时时间
     */
    public final static int CONNECT_TIMEOUT = 10000;
    /**
     * 读取超时时间
     */
    public final static int READ_TIMEOUT = 30000;ConnManagerParams.setMaxTotalConnections(httpParams,
    MAX_TOTAL_CONNECTIONS);
    // 设置获取连接的最大等待时间
    HttpConnectionParams.setConnectionTimeout(httpParams,
    CONNECT_TIMEOUT);
    HttpConnectionParams.setSoTimeout(httpParams, READ_TIMEOUT);把这三个参数设置大写试试
      

  3.   

    ConnManagerParams.setMaxTotalConnections(httpParams,
     MAX_TOTAL_CONNECTIONS); 这个不用设了,看错了
      

  4.   

    我也碰到这个问题了,经常超时,同样的后台,ios可以访问,android端就不可以访问,浏览器打开接口也可以访问。
      

  5.   


    至今我仍然没有解决这个问题,应用在首次打开连接失败,那么必须隔一段时间再次连接才能成功,或者杀死应用进程,重新打开连接就好了。难道是httpclient缓存问题?
      

  6.   

    请问有人解决了吗 。我也是这种情况  IOS 可以 网页可以 Android端代码没问题啊 可以正常访问 但是经常会超时。。
      

  7.   

    我也是这个问题啊   连接超时   一开始连接被拒绝,我用的是localhost作ip,后来百度了一下,android会把默认的ip设置成10.xx.xx.xx   然后我改了192.168.1.xx   就变成连接超时了
      

  8.   

    我跟同事也做了很多测试,但最后有点不解的还是解决了问题(可以不看我们的测试,直接看结果):
    前提是你们用3G,2G,4G可以正常访问,确保程序没有问题,然后在测试
    1.同一个路由,同一个光纤:安卓连接服务器非常不稳定,可能在某一时间就会连接上(在安卓手机下载终端工具,pin服务器路径有时成功有时失败),ios可以
    2.不同路由器,同一个光纤:如1的情况相同
    3.同一个路由器,不同光纤:安卓正常,ios正常
    最后我推断可能是光纤的问题,时断时续的连接,ios与安卓分别是怎么做的,底层的东西我也不懂,所以只能想到这里
    结果就是3,我们换了网线,一切正常

    如果大家发现了具体的问题出在哪,麻烦通知我一下,
      

  9.   

    最近发现大家进群后还是会问我如果解决的,这里我说一些httpclient的封装点,需要大家先核对自己的封装,如果没有问题,然后碰到超时,才可能是我说的光纤httpclient封装需要注意:(研究不够透彻,尽量不要使用单例httpclient)
    1.每次都新建httpclient
    2.在请求得到http的错误码(非200的情况),需要调用request.abort();
    3.超时或者其他请求异常时,catch里面调用httpclient.getConnectionManager().shutdown();// 释放连接请大家务必核对以上3点,如果没有问题,我也不知道有什么更好的办法了。
      

  10.   

    真是啊 跟我的现象一模一样  同一个wifi Android经常超时,IOS没事。
    Android切换成移动网络(比如2G),就一切正常。
      

  11.   

    我把自己封转的httpclient 共享给大家,参考一下,希望可以解决某些http问题百度网盘:http://pan.baidu.com/s/1sj0Qkvb
      

  12.   

    非常感谢分享
    另外请问这个代码能解决之前提到的光纤的问题吗?
    毕竟android上的一些大众应用如微信之类,是肯定不会受什么光纤影响的吧,终究还是我们的代码写得有问题,我以为。