我有一个内部端点,我正在尝试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 数组。