Android - Как обработать тайм-аут - PullRequest
0 голосов
/ 02 марта 2012

У меня проблема с запросом POST / GET в Android.Я пытаюсь обработать ошибку:

Причина: java.net.SocketTimeoutException: Read timed out

Чтобы предотвратить сбой в моем приложении, я добавил тайм-аут 40 секунд.Это работает, но иногда 40 секунд недостаточно, чтобы избежать ошибки.

Я пытался добавить «попробуй и поймай», но похоже, что здесь не происходит ошибка:

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, я вижу только сообщения типа «увеличить время ожидания, добавить попытку и т. Д.»

Я что-то не так делаю?

1 Ответ

0 голосов
/ 02 марта 2012

Трудно сказать, просто взглянув на оператор catch, но, возможно, вы получаете другую ошибку, чем SocketTimeoutException?Попробуйте вместо этого поймать исключение.

...