【问题标题】:Android - How to handler timeoutAndroid - 如何处理超时
【发布时间】:2012-03-01 20:18:40
【问题描述】:

我在 Android 中请求 POST/GET 时遇到问题。 我正在尝试处理错误:

引起:java.net.SocketTimeoutException: Read timed out

为了防止我的应用程序崩溃,我添加了 40 秒的超时。这可行,但有时 40 秒不足以避免错误。

我尝试添加“try and catch”,但似乎这里没有发生错误:

try {
            request.setEntity(new UrlEncodedFormEntity(nameValuePairs));
            localContext.setAttribute(ClientContext.COOKIE_STORE,
                    Backend2.cookieStore);
            response = HttpManager.execute(request, localContext);
            if (response.getEntity() != null) {
                final String r = EntityUtils.toString(response.getEntity());
                return r;
            } else {
                return null;
            }
        } catch (SocketTimeoutException e) {
            e.printStackTrace();
            return null;
        }  catch (UnknownHostException e) {
            e.printStackTrace();
            return null;
        } catch (IOException e) {
            e.printStackTrace();
            return null;
        }

我正在寻找解决方案,但是当我在 stackoverflow 和 google 上阅读时,我只看到诸如“增加您的超时时间,添加尝试等”之类的帖子。

我做错了什么?

【问题讨论】:

    标签: android crash timeout


    【解决方案1】:

    仅看你的 catch 语句很难判断,但也许你得到的错误与 SocketTimeoutException 不同?尝试捕获异常来确认这一点。

    【讨论】:

    • 我用完整的 try and catch 更新了帖子,我应该只添加 Exception 吗?
    • 正如您之前所说,有时您会捕获 SocketTimeoutException,有时您不会,所以我认为您可能会遇到不同的错误。尝试捕获异常,除非您对每种类型的异常有不同的处理方式。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-22
    • 2015-01-03
    • 1970-01-01
    • 2023-03-20
    • 1970-01-01
    相关资源
    最近更新 更多