gpt4 book ai didi

java - vertx 调用后搜索域查询失败

转载 作者:行者123 更新时间:2023-12-01 16:42:18 37 4
gpt4 key购买 nike

我创建了一个 webClient 作为:

WebClientOptions options = new WebClientOptions();
WebClient client = WebClient.create(vertx, options);
String host = "https://example.com/";

我正在尝试对 json 命令进行 POST 调用:

client.post(8080, host, "/api/executor/command")
.ssl(false)
.rxSendJson(jsonCmd)
.map((HttpResponse<Buffer> r) -> {
System.out.println("response: " + r.bodyAsString());}).toObservable();})
.doOnError( error -> System.err.println("The error message is: " + error.getMessage()))

但我收到此错误:

The error message is: Search domain query failed. Original hostname: 'https://example.com/' failed to resolve 'https://example.com/.lan' after 3 queries 

在终端上执行相同的curl调用时:

curl  https://example.com/api/executor/command -XPOST --insecure  -d 'jsonCmd'

我没有收到任何错误,服务器也响应了我。我究竟做错了什么?我是 vertx/java 的新手。

谢谢

马泰奥

编辑

我已按照建议添加了选项

options.setTrustAll(true);

并删除了 println,现在它似乎可以工作了,谢谢..

最佳答案

您使用 ssl 将带有 cURL 的查询发布到端口 443(如 HTTPS 所示,443 是默认 HTTPS 端口)。然而您不仅禁用了 ssl(通过使用 ssl(false)),而且还使用了错误的端口号和错误的主机名(您提供 URL 而不是主机名,主机名不会包含 https:/// 前缀)。你的代码应该是这样的:

String host = "example.com";
client.post(443, host, "/api/executor/command")
.ssl(true)
...and so on...

以便它与 cURL 正在执行的操作相匹配。

关于java - vertx 调用后搜索域查询失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61099262/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com