【问题标题】:Weird Android ConnectTimeoutException奇怪的 Android ConnectTimeoutException
【发布时间】:2013-10-30 07:12:53
【问题描述】:

我和这个家伙 [Link Here] 遇到了同样的网络问题

大多数网络要求在 2g/3g 模式下工作正常,只有通过 Wifi 连接时才会出现问题。

但在我的 iphone4,5/网络浏览器上一切正常,我不知道它有什么问题。

所以,任何帮助将不胜感激!谢谢

这是代码

    //Code in HttpHelper.java
    public class HttpHelper{
        ..................
        HttpGet get = new HttpGet(url);//295
        HttpResult result = new HttpResult();
        HttpClient client = getNewHttpClient();
        HttpResponse response = client.execute(httpPost);// line 298

        ..................
        public static HttpClient getNewHttpClient() {
            return new DefaultHttpClient();
        }

        ..................
    }


    //Code in HttpResult.java
    public class HttpResult {
        public int code;
        public String response;

        public HttpResult(){
            this.code = HttpStatusCode.FAIL;
            this.response = null;
        }
    }

这是日志

10-30 11:18:18.672: W/System.err(945): org.apache.http.conn.ConnectTimeoutException: 连接到 /188.151.209.58:80 超时 10-30 11:18:18.682: W/System.err(945): 在 org.apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:121) 10-30 11:18:18.682: W/System.err(945): 在 org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:144) 10-30 11:18:18.682: W/System.err(945): 在 org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164) 10-30 11:18:18.682: W/System.err(945): 在 org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119) 10-30 11:18:18.682: W/System.err(945): 在 org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:360) 10-30 11:18:18.682: W/System.err(945): 在 org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555) 10-30 11:18:18.687: W/System.err(945): 在 org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487) 10-30 11:18:18.687: W/System.err(945): 在 org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465) 10-30 11:18:18.687: W/System.err(945): 在 my.package.name.manager.http.HttpHelper.getResponse(HttpHelper.java:298) 10-30 11:18:18.687: W/System.err(945): 在 my.package.name.manager.http.HttpHelper.getData(HttpHelper.java:175) 10-30 11:18:18.687: W/System.err(945): 在 my.package.name..util.ThreadUtil$TaskRunnable.run(ThreadUtil.java:209) 10-30 11:18:18.687: W/System.err(945): 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076) 10-30 11:18:18.687: W/System.err(945): 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569) 10-30 11:18:18.692: W/System.err(945): 在 java.lang.Thread.run(Thread.java:856)

我尝试使用 androidhttpclient/apache.httpclient/basic-http-client...等,最终他们都给我一个超时异常

【问题讨论】:

  • 发布代码块以及与此相关的任何错误,否则没有人可以帮助您。
  • 代码在这里准备好了,谢谢你的回复
  • 你的 iphone 和 android 设备是同一个 wifi 网络吗?确保您的 url 正确并且您的 wifi 连接到 Internet。将超时设置得更长一点以确保,可能是 10 秒或 15 秒。这些是可能的检查步骤。
  • 我无法在浏览器中打开 URL(IP 地址),我猜它不是公开的。但如果它是公开的,那么问题就出在服务器上。您只需要在您的应用中处理超时异常。
  • @user2652394 是的,它是同一个网络,iphone 工作正常,android 经常超时,当前超时持续时间是 30 秒,即使设置为 60 秒仍然会抛出超时异常

标签: android


【解决方案1】:

确保在您的清单中使用互联网权限,并且链接正确,并且可能会因为网络流量而发生,这些是您的案例中常见的 3 个问题。

【讨论】:

  • 老兄,这发生在我更换 ISP 提供商之后,以前从未发生过,这意味着它是服务器的故障而不是 android 客户端?
  • 我不是很清楚,只是简单的http请求,我还没有指定任何选项
  • 我的意思是我在回答中指定的第三个选项:)
  • 也许吧,但 iphone 同时运行良好,这很奇怪
猜你喜欢
  • 2015-11-17
  • 2020-11-05
  • 2013-04-08
  • 2014-01-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多