Хобрук: Ваш путь к мастерству в программировании

Android останавливает выполнение http-запроса

Я хотел бы знать, можно ли остановить выполнение кода в responseReceived примера http-запроса:

new HttpRequest() {
        @Override
        public void onResponseReceived(JSONObject result) {
        // doing a lot of thing
        }
}.get("http://niceUrl");

Внутри onResponseReceived я много чего делаю (разбираю Json, добавляю данные в список и т. д.)

Когда я вызываю эту функцию:

private void stopExecutionOfOnResponseReceived(){
    // I would like to stop the previous HttpRequest and launch a new One
}

HttpRequest — это абстрактный класс, который расширяет AsyncTask String, Void, JSONObject.


  • класс asynctask имеет метод cancel() проверить, что 09.08.2017
  • Если вы можете вызвать метод отмены, вы не можете его остановить. 09.08.2017

Ответы:


1

Вы можете использовать метод прерывания. В этом примере показано, как прервать HTTP-метод до его нормального завершения.

public class ClientAbortMethod {

    public final static void main(String[] args) throws Exception {
        CloseableHttpClient httpclient = HttpClients.createDefault();
        try {
            HttpGet httpget = new HttpGet("http://httpbin.org/get");

            System.out.println("Executing request " + httpget.getURI());
            CloseableHttpResponse response = httpclient.execute(httpget);
            try {
                System.out.println("----------------------------------------");
                System.out.println(response.getStatusLine());
                // Do not feel like reading the response body
                // Call abort on the request object
                httpget.abort();
            } finally {
                response.close();
            }
        } finally {
            httpclient.close();
        }
    }

}
09.08.2017
  • Я не знаю, полезно ли это, потому что я использую HttpUrlConnection для запроса 09.08.2017
  • Новые материалы

    Разработчики — Избегайте сложностей глупо
    Сложность управляется, а не побеждается «Простота — великая добродетель, но для ее достижения требуется тяжелая работа и образование, чтобы оценить ее. И что еще хуже: сложность продается..

    Как сделать HTML динамическим с помощью JavaScript
    Код JavaScript выполняется внутри страниц сайта. Таким образом, страница вашего сайта содержит метки HTML, а также пояснения (скрипты), составленные с использованием диалекта сценариев, такого как..

    Деревья классификации и регрессии
    Это мой второй пост об алгоритмах машинного обучения. Мой первый пост посвящен искусственным нейронным сетям, вы можете найти его ниже. Нейронные сети — базовое..

    HMTL - Многозадачное обучение для решения задач НЛП
    Достижение результатов SOTA путем передачи знаний между задачами Область обработки естественного языка включает в себя десятки задач, среди которых машинный перевод, распознавание именованных..

    Решения DBA Metrix
    DBA Metrix Solutions предоставляет удаленного администратора базы данных (DBA), который несет ответственность за внедрение, обслуживание, настройку, восстановление базы данных, а также другие..

    Начало работы с Блум
    Обзор и Codelab для генерации текста с помощью Bloom Оглавление Что такое Блум? Некоторые предостережения Настройка среды Скачивание предварительно обученного токенизатора и модели..

    Создание кнопочного меню с использованием HTML, CSS и JavaScript
    Вы будете создавать кнопочное меню, которое имеет состояние наведения, а также позволяет вам выбирать кнопку при нажатии на нее. Финальный проект можно увидеть в этом Codepen . Шаг 1..