我的 vertx HttpClient 有问题。
下面的代码显示使用 vertx 和纯 java 测试 GET。
Vertx vertx = Vertx.vertx();
HttpClientOptions options = new HttpClientOptions()
.setTrustAll(true)
.setSsl(false)
.setDefaultPort(80)
.setProtocolVersion(HttpVersion.HTTP_1_1)
.setLogActivity(true);
HttpClient client = vertx.createHttpClient(options);
client.getNow("google.com", "/", response -> {
System.out.println("Received response with status code " + response.statusCode());
});
System.out.println(getHTML("http://google.com"));
getHTML() 来自这里:如何在 Java 中执行 HTTP GET? https://stackoverflow.com/questions/1485708/how-do-i-do-a-http-get-in-java
这是我的输出:
<!doctype html><html... etc <- correct output from plain java
Feb 08, 2017 11:31:21 AM io.vertx.core.http.impl.HttpClientRequestImpl
SEVERE: java.net.UnknownHostException: failed to resolve 'google.com'. Exceeded max queries per resolve 3
但vertx无法连接。这是怎么回事?我没有使用任何代理。
供参考:解决方案,如中所述这个问题 https://stackoverflow.com/questions/40412623在 tsegismont 的评论中,是设置标志vertx.disableDnsResolver
to true
:
-Dvertx.disableDnsResolver=true
为了回退到 JVM DNS 解析器在这里解释 https://github.com/eclipse-vertx/vert.x/blob/72ea285930e223fff6000d56713d556f2ebc1cd2/src/main/asciidoc/override/hostname-resolution.adoc:
有时可能需要使用 JVM 内置解析器,JVM 系统属性 -Dvertx.disableDnsResolver=true 会激活此行为
我在 kubernetes 环境中使用 redis 客户端观察到此 DNS 解析问题。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)