Использование веб-клиента Vert.x для правильной отправки запросов GET с заголовками

У меня есть внутренняя конечная точка, которую я пытаюсь отправить GET запросы к веб-клиенту Vert.x с Java. Пока я не могу успешно получить какие-либо данные обратно.

Если я отбраковываю конечную точку, она работает нормально (это внутренние конечные точки). Служба, которую я пытаюсь отправить GET Для запросов требуется несколько заголовков, а также данные:

curl -H "Accept:application/json" -H "Content-Type:application/json" -H "alpha:192.168.10.20" -d '{"mutate":"*"}' http://my-endpoint.com/api/get-items

Но если я пытаюсь использовать это в одной из моих конечных точек маршрутизатора в Vert.x, я получаю сообщение об ошибке:

WebClient webClient = WebClient.create(vertx);
    webClient.get("http://my-endpoint.com/api/get-items")
        .putHeader("Accept", "application/json")
        .putHeader("Content-Type", "application/json")
        .putHeader("alpha", "192.168.10.20")
        .sendJsonObject(new JsonObject().put("mutate", "*"), ar -> { 
            if (ar.succeeded()) {
                System.out.println("##### WEBCLIENT #####");
                System.out.println(ar);
            } else {
                System.out.println("CAUSE: " + ar.cause().getMessage());

            }
    });

Сообщение об ошибке, которое я получаю из оператора else:

CAUSE: Connection refused: localhost/127.0.0.1:80

Что я делаю неправильно? Я использовал это для справки: веб-клиент Vert.x

===========================================

РЕШЕНИЕ

===========================================

Я должен был изменить

webClient.get("http://my-endpoint.com/api/get-items")

в

webClient.post(80, "my-endpoint.com", "/api/get-items")

Также пришлось добавить .as(BodyCodec.jsonArray()) под линией выше, потому что результат, который я получил, был массивом Json.

2 ответа

Вы можете использовать метод getAbs, если не хотите самостоятельно анализировать URL-адрес.

      webClient.getAbs("http://my-endpoint.com/api/get-items")

Это также относится к любому методу запроса,postAbs,putAbs, и т. д.

Вам нужно изменить

      webClient.get("http://my-endpoint.com/api/get-items")

к

      webClient.get(80, "my-endpoint.com", "/api/get-items")
Другие вопросы по тегам