Долгая попытка сделать запрос по сети, без интернета

248
06 мая 2018, 21:32

Делаю запрос в сеть. Запускаю AsyncTask. При наличии интернета всё ок. При отключении интернета на моем телефоне тоже всё ок, т.е. моментально возвращается String answer равный null. Но перепробовал кучу эмуляторов с разными апи и на всех виснет именно на этом участке кода. Делается запрос в сеть и висит, как будто пытается подключиться и иногда через минуту, а то и больше всё таки возвращает String answer равный null. И после того как ответ всё таки приходит, получаю длинный стектрейс , в середине написано W/System.err: java.net.ConnectException: failed to connect to api.fixer.io/2400:cb00:2048:1::681b:90c4 (port 443): connect failed: ECONNREFUSED (Connection refused) и указывает на стройку в коде: int code = connection.getResponseCode();

@Override
    protected String doInBackground(String... urls) {
        return getAnswer(urls);
    }

  private String getAnswer(String... urls) {
        String answer = null;
        try {
            URL url = new URL(urls[0]);
            HttpURLConnection connection = (HttpURLConnection) url.openConnection();
            connection.setRequestMethod("GET");
            connection.setUseCaches(false);
            int code = connection.getResponseCode();
            if (code == HttpURLConnection.HTTP_OK) {
                answer = "убрал лишний код";
            }
            connection.disconnect();
        } catch (IOException ex) {
            ex.printStackTrace();
        }
        return answer;
    }

.

05-04 21:29:06.177 1270-1466/system_process A/NetworkStats: problem reading network stats
    java.lang.IllegalStateException: problem parsing idx 1
        at com.android.internal.net.NetworkStatsFactory.readNetworkStatsDetail(NetworkStatsFactory.java:300)
        at com.android.server.NetworkManagementService.getNetworkStatsUidDetail(NetworkManagementService.java:1282)
        at com.android.server.net.NetworkStatsService.performPollLocked(NetworkStatsService.java:831)
        at com.android.server.net.NetworkStatsService.performPoll(NetworkStatsService.java:799)
        at com.android.server.net.NetworkStatsService.access$100(NetworkStatsService.java:128)
        at com.android.server.net.NetworkStatsService$3.onReceive(NetworkStatsService.java:633)
        at android.app.LoadedApk$ReceiverDispatcher$Args.run(LoadedApk.java:728)
        at android.os.Handler.handleCallback(Handler.java:605)
        at android.os.Handler.dispatchMessage(Handler.java:92)
        at android.os.Looper.loop(Looper.java:137)
        at android.os.HandlerThread.run(HandlerThread.java:60)
     Caused by: java.io.FileNotFoundException: /proc/net/xt_qtaguid/stats: open failed: ENOENT (No such file or directory)
        at libcore.io.IoBridge.open(IoBridge.java:406)
        at java.io.FileInputStream.<init>(FileInputStream.java:78)
        at com.android.internal.net.NetworkStatsFactory.readNetworkStatsDetail(NetworkStatsFactory.java:269)
        at com.android.server.NetworkManagementService.getNetworkStatsUidDetail(NetworkManagementService.java:1282) 
        at com.android.server.net.NetworkStatsService.performPollLocked(NetworkStatsService.java:831) 
        at com.android.server.net.NetworkStatsService.performPoll(NetworkStatsService.java:799) 
        at com.android.server.net.NetworkStatsService.access$100(NetworkStatsService.java:128) 
        at com.android.server.net.NetworkStatsService$3.onReceive(NetworkStatsService.java:633) 
        at android.app.LoadedApk$ReceiverDispatcher$Args.run(LoadedApk.java:728) 
        at android.os.Handler.handleCallback(Handler.java:605) 
        at android.os.Handler.dispatchMessage(Handler.java:92) 
        at android.os.Looper.loop(Looper.java:137) 
        at android.os.HandlerThread.run(HandlerThread.java:60) 
     Caused by: libcore.io.ErrnoException: open failed: ENOENT (No such file or directory)
        at libcore.io.Posix.open(Native Method)
        at libcore.io.BlockGuardOs.open(BlockGuardOs.java:110)
        at libcore.io.IoBridge.open(IoBridge.java:390)
        at java.io.FileInputStream.<init>(FileInputStream.java:78) 
        at com.android.internal.net.NetworkStatsFactory.readNetworkStatsDetail(NetworkStatsFactory.java:269) 
        at com.android.server.NetworkManagementService.getNetworkStatsUidDetail(NetworkManagementService.java:1282) 
        at com.android.server.net.NetworkStatsService.performPollLocked(NetworkStatsService.java:831) 
        at com.android.server.net.NetworkStatsService.performPoll(NetworkStatsService.java:799) 
        at com.android.server.net.NetworkStatsService.access$100(NetworkStatsService.java:128) 
        at com.android.server.net.NetworkStatsService$3.onReceive(NetworkStatsService.java:633) 
        at android.app.LoadedApk$ReceiverDispatcher$Args.run(LoadedApk.java:728) 
        at android.os.Handler.handleCallback(Handler.java:605) 
        at android.os.Handler.dispatchMessage(Handler.java:92) 
        at android.os.Looper.loop(Looper.java:137) 
        at android.os.HandlerThread.run(HandlerThread.java:60) 
05-04 21:34:04.037 2481-2551/mobiledimension.exchangerates W/System.err: java.net.ConnectException: failed to connect to api.fixer.io/2400:cb00:2048:1::681b:90c4 (port 443): connect failed: ECONNREFUSED (Connection refused)
        at libcore.io.IoBridge.connect(IoBridge.java:114)
        at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:192)
        at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:459)
        at java.net.Socket.connect(Socket.java:842)
        at libcore.net.http.HttpConnection.<init>(HttpConnection.java:77)
        at libcore.net.http.HttpConnection.<init>(HttpConnection.java:50)
        at libcore.net.http.HttpConnection$Address.connect(HttpConnection.java:351)
        at libcore.net.http.HttpConnectionPool.get(HttpConnectionPool.java:86)
        at libcore.net.http.HttpConnection.connect(HttpConnection.java:128)
05-04 21:34:04.047 2481-2551/mobiledimension.exchangerates W/System.err:     at libcore.net.http.HttpEngine.openSocketConnection(HttpEngine.java:308)
        at libcore.net.http.HttpsURLConnectionImpl$HttpsEngine.makeSslConnection(HttpsURLConnectionImpl.java:460)
        at libcore.net.http.HttpsURLConnectionImpl$HttpsEngine.connect(HttpsURLConnectionImpl.java:441)
        at libcore.net.http.HttpEngine.sendSocketRequest(HttpEngine.java:282)
        at libcore.net.http.HttpEngine.sendRequest(HttpEngine.java:232)
        at libcore.net.http.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:273)
        at libcore.net.http.HttpURLConnectionImpl.getResponseCode(HttpURLConnectionImpl.java:479)
        at libcore.net.http.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:133)
        at mobiledimension.exchangerates.AsyncTaskUploadingData.getAnswer(AsyncTaskUploadingData.java:57)
        at mobiledimension.exchangerates.AsyncTaskUploadingData.doInBackground(AsyncTaskUploadingData.java:35)
        at mobiledimension.exchangerates.AsyncTaskUploadingData.doInBackground(AsyncTaskUploadingData.java:19)
        at android.os.AsyncTask$2.call(AsyncTask.java:264)
        at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
        at java.util.concurrent.FutureTask.run(FutureTask.java:137)
        at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:208)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
        at java.lang.Thread.run(Thread.java:856)
    Caused by: libcore.io.ErrnoException: connect failed: ECONNREFUSED (Connection refused)
        at libcore.io.Posix.connect(Native Method)
        at libcore.io.BlockGuardOs.connect(BlockGuardOs.java:85)
        at libcore.io.IoBridge.connectErrno(IoBridge.java:127)
        at libcore.io.IoBridge.connect(IoBridge.java:112)
READ ALSO
Где можно использовать методы Predicate?

Где можно использовать методы Predicate?

Интересуют случаи где можно применить negate, and и orНу и к тому же не пойму в общем как они работают

212
Обработка нажатий на Actor в libgdx

Обработка нажатий на Actor в libgdx

Как лучше узнать, было ли нажатие на какого-то актёра в libgdx

242
Исключение InetAdress.getLocalHost() - UnknownHost

Исключение InetAdress.getLocalHost() - UnknownHost

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

239
Задан файл целых чисел. Указать диапазон, в котором находятся его элементы

Задан файл целых чисел. Указать диапазон, в котором находятся его элементы

Смог сделать данную задачу не считывая данные с файла, а случайными числами

253