0

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

如果我卷曲端点,它就可以正常工作(这些是内部端点)。我尝试向其发送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 数组。

4

1 回答 1

-1

你需要改变

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

webClient.get(80, "my-endpoint.com", "/api/get-items")
于 2022-01-12T14:03:46.143 回答