AsyncHttpClient генерирует исключение netty: ввод не в формате GZIP - PullRequest
0 голосов
/ 11 июня 2019

Я пытаюсь использовать AsyncHttpClient для создания асинхронных и синхронных запросов, но я получаю сообщение об ошибке как для типов запросов, так и для GET, POST и PUT.Мне не повезло, что он ищет решения.Я попытался вернуться к предыдущим версиям AsyncHttpClient, и у меня возникла та же проблема.

Кто-нибудь смог устранить эту ошибку?

Может ли это быть вызвано конечной точкой REST API, которую я вызываю?(Я так не думаю, потому что, если я использую HttpClient для синхронных запросов, тогда это работает.)

Есть ли лучший способ выполнять асинхронные http-запросы в Java?

Пожалуйста, укажите меня вправильное направление.Если вам нужно больше деталей, пожалуйста, дайте мне знать.Заранее спасибо!

Это упрощенная версия кода:

 AsyncHttpClient asyncClient = asyncHttpClient();

 //calling get() at the end should make it synchronous.
 Response response = asyncClient.prepareGet(uri.toString())
                    .setHeader(HttpHeaders.ACCEPT, ContentType.APPLICATION_JSON)
                    .setHeader(HttpHeaders.CONTENT_TYPE, ContentType.APPLICATION_JSON)
                    .setHeader(HttpHeaders.AUTHORIZATION, authToken)
                    .execute()
                    .get();//Fails here.

Сбой при следующей ошибке:

java.util.concurrent.ExecutionException: io.netty.handler.codec.compression.DecompressionException: вход не в формате GZIP в java.util.concurrent.CompletableFuture.reportGet (CompletableFuture.java:357) в java.util.concurrent.CompletableFuture.get (CompletableFuture.java:1895) в org.asynchttpclient.netty.NettyResponseFuture.get (NettyResponseFuture.java:201) в AvisionAPI.lib.ApiHelper.doRequest (ApiHelper.liAP.ApiHelper.doRequest (ApiHelper.java:82) в AvisionAPI.lib.ApiHelper.doRequest (ApiHelper.java:78) в AvisionAPI.lib.FlightProjectService.FlightPlansGet (FlightProjectService.java:est)..java: 19) в AvisionAPI.Test.TestHelper.DoTest (TestHelper.java:14) в Main.main (Main.java:5)

Причина: io.netty.handler.codec.compression.DeCompressionException: ввод не в формате GZIP в io.netty.handler.codec.compression.JdkZlibDecoder.readGZIPHeader (JdkZlibDecoder.java:260) в io.netty.handler.codec.compression.JdkZlibDecoder.decode:16dk: Jdk) по адресу io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection (ByteToMessageDecoder.java:502) по адресу io.netty.handler.codec.ByteToMessageDecoder.callDecode (ByteToMessageDeco.ede.oe.dee.der.ededer.ededer.ededer.ededer.ededer.ededer.ededer.ededer.ededer.ededer.ededer.edecochannelRead (ByteToMessageDecoder.java:278) в и более ...

pom.xml:

<!--https://github.com/AsyncHttpClient/async-http-client-->
<dependency>
    <groupId>org.asynchttpclient</groupId>
    <artifactId>async-http-client</artifactId>
    <version>2.10.0</version>
</dependency>

Некоторые из связанных импортов в моем классе:

import org.apache.http.*;
import org.apache.http.client.utils.URIBuilder;
import org.apache.http.entity.ContentType;

import org.asynchttpclient.*;
import static org.asynchttpclient.Dsl.*;
import org.asynchttpclient.request.body.multipart.InputStreamPart;
import org.asynchttpclient.request.body.multipart.Part;

Обновление: Я закончил тем, что изменил проект с Java 8 на 11, чтобы я мог использовать новейший java.net.http.HttpClient вместо orgasyncHttpClient иэто работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...