使用Vert.x Web客户端正确发送带有标头的GET请求

时间:2018-07-30 19:05:07

标签: java http http-headers vert.x web-client

我有一个内部端点,我试图通过Java的Vert.x Web客户端向GET发送请求。到目前为止,我无法成功取回任何数据。

如果我对端点进行cURL,它就可以正常工作(这些是内部端点)。我尝试向发送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 Web Client

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

解决方案

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

我不得不改变

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

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

还必须在上一行下面添加.as(BodyCodec.jsonArray()),因为我得到的结果是一个Json数组。

0 个答案:

没有答案