Vertx WebClient SSL перенаправление не удается

Я пытаюсь установить соединение со сторонним API, для которого требуется ключ API. Он работает нормально, используя традиционный HttpURLConnection... Я получаю ответ 200

HttpURLConnection connection = (HttpURLConnection) new URL("https://www.server.com/download?apikey=<MY_KEY>"

Однако при использовании Vertx WebClient (io.vertx.ext.web.client.WebClient) я всегда получаю 403 Forbidden

webClient = WebClient.create(vertx, new WebClientOptions());
webClient.get("/download")
.addQueryParam("apikey", "<MY_KEY>")
.ssl(true)
.host("www.server.com")
.port(443)
.send(downloadFileHandler ->
{

После расследования выясняется, что причина в том, что API перенаправляет на другой URL, и исходный URL, и перенаправление используют SSL. Почему-то веб-клиент Vertx не поддерживает рукопожатие.

1 ответ

      //WebClientOptions webClientOptions = new WebClientOptions();
WebClient client = WebClient.create(vertx, webClientOptions);
WebClientSession session = WebClientSession.create(client);
session.getAbs(url).send(response -> {
    if (response.succeeded()) {
        HttpResponse<Buffer> httpResponse = response.result();
        System.out.println(" -> Response Code : " + httpResponse.statusCode());
        promise.complete(httpResponse.bodyAsJsonObject());
    } else {
        promise.fail(response.cause());
    }
});
Другие вопросы по тегам