Почему сообщение Http в моем приложении для Android получает исключение Timeout, когда устройство подключено через 3G?

В моем приложении для Android я запускаю http post и получаю исключение timeout, когда я подключен через 3G/4G, а не через Wi-Fi (я отправляю изображения, но это произошло и с изображениями размером 1 КБ, проблема не в размере изображения, я уверен об этом).

Вот код.

Я использую асинхронный Android Http Client

Заранее спасибо.

    AsyncHttpClient httpClient = new AsyncHttpClient();
    RequestParams requestParams = new RequestParams();
    httpClient.setTimeout(25000);
    httpClient.setConnectTimeout(25000);
    httpClient.setResponseTimeout(25000);
    destination = new File(path);
    requestParams.put("file", destination);
    httpClient.post("http://" + serverUrl + ":8081/readplate", requestParams, new JsonHttpResponseHandler() {

                @Override
                public void onFailure(int statusCode, Header[] headers, java.lang.Throwable throwable, org.json.JSONObject response) {
                   //exception here
                   ...

                }

                @Override
                public void onSuccess(int statusCode, Header[] headers, org.json.JSONArray response) {

                    ...

                }
    }

person alfo888_ibg    schedule 17.02.2016    source источник
comment
возможный дубликат: stackoverflow.com/q/17473617/4252352   -  person Mark Keen    schedule 17.02.2016


Ответы (1)


Как предполагает Марк в комментариях, это могут быть проблемы с сетью, а не с вашим кодом, и это определенно первое место, где нужно искать. Например, используемый вами порт 8081 может быть по какой-то причине заблокирован вашим оператором.

Один из способов убедиться, что проблема не в вашем коде, — использовать инструмент POST на основе браузера, такой как Postman, на ноутбуке с Wi-Fi и ключом 3G — ссылка ниже. Кроме того, вы можете использовать клиент REST на своем устройстве Android, чтобы выполнить тот же тест — также ссылка ниже. Протестируйте на WiFi и 3G/4G, и если вы увидите ту же проблему, что и с вашим приложением, вы, скорее всего, можете предположить, что проблема не в вашем коде.

Ссылка на почтальона:

REST-клиент для Android:

person Mick    schedule 21.02.2016