Как отменить Async http/2 запроса в Apache httpclient 5.4JAVA

Программисты JAVA общаются здесь
Anonymous
Как отменить Async http/2 запроса в Apache httpclient 5.4

Сообщение Anonymous »

Когда веб-браузер воспроизводит видео, во-первых, он отправляет HTTP-запрос с диапазоном заголовков: Bytes = 0-. Из этого запроса он только извлекает первые несколько человек в килобитах и ​​информацию об общей длине от длины содержимого заголовка , тогда запрос отменяется браузером. Последующие есть запросы с диапазоном заголовков HTTP: Bytes = 123000-456000 , но когда пользователь начинает обращаться за запросом, до того, как все данные из запрошенного диапазона будут извлечены.
< img alt = "Crome Network Console с отмененными запросами" src = "https://i.sstatic.net/f478dzvo.png"/>
Я пытаюсь сделать то же самое с Apache httpclient 5.4 над http/2 с кодом, как это:

Код: Выделить всё

        var future = client.execute(
new BasicRequestProducer(videoReq, null),
consumer,
new FutureCallback() {

// shortened for readability

@Override
public void cancelled() {
log.info("CANCELLED");
}
});
try {
future.get(100, TimeUnit.MILLISECONDS);
} catch (TimeoutException ex) {
future.cancel(true);
}
< /code>
Где потребитель примерно так: < /p>
public class Consumer extends AbstractBinResponseConsumer {

// shortened for readability

@Override
protected void data(ByteBuffer byteBuffer, boolean endOfStream) throws IOException {
int dataAvailable = byteBuffer.remaining();
bytesReceived += dataAvailable;
log.info("Total data received: {}", bytesReceived);
}
}

Я вижу отмененное сообщение в журнале, но даже после этого сообщения я вижу, что данные потребляются до конца потока (что может быть сотнями мегабайт).
Кто -нибудь знает, чтобы правильно отменить http/2 async -запрос с Apache httpclient 5.4?
Почему я это делаю? Я сообщил о проблеме в пристани Webserver, которая возникает только в соединениях HTTP/2. Это уже было зафиксировано в пристани 11, но в причале 12 его трудно воспроизвести, и я пытаюсь создать тестовое приложение, которое воспроизводит ошибку по каждой попытке, но я безуспешно, потому что не выполняется сброс потока Apache Httpclient библиотеки. /п>

Подробнее здесь: https://stackoverflow.com/questions/794 ... client-5-4

Вернуться в «JAVA»