Java 8 Vertx RxJava网络客户端
我正在尝试使用vertx和RxJava使用RESTAPI,下面是我的代码Java 8 Vertx RxJava网络客户端,java-8,vert.x,rx-java2,Java 8,Vert.x,Rx Java2,我正在尝试使用vertx和RxJava使用RESTAPI,下面是我的代码 import io.vertx.rxjava.core.buffer.Buffer; import io.vertx.rxjava.ext.web.client.HttpResponse; import rx.Single; public Single<HttpResponse<Buffer>> getLanguages() { WebClientOptions optio
import io.vertx.rxjava.core.buffer.Buffer;
import io.vertx.rxjava.ext.web.client.HttpResponse;
import rx.Single;
public Single<HttpResponse<Buffer>> getLanguages() {
WebClientOptions options = new WebClientOptions().setUserAgent("Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.82 Safari/537.36");
WebClient client = WebClient.create(Vertx.vertx(), options);
Single<HttpResponse<Buffer>> single = client
.get("time.jsontest.com", "/")
.rxSend();
return single;
}
我检查了url,它工作正常,只有当我使用Vertex webclient连接到此url时,我才收到此错误,我缺少什么?
我在pom文件中添加了以下工件作为依赖项
<dependency>
<groupId>io.reactivex.rxjava2</groupId>
<artifactId>rxjava</artifactId>
<version>2.1.0</version>
</dependency>
<dependency>
<groupId>io.vertx</groupId>
<artifactId>vertx-web-client</artifactId>
<version>3.4.1</version>
</dependency>
<dependency>
<groupId>io.vertx</groupId>
<artifactId>vertx-rx-java</artifactId>
<version>3.4.1</version>
</dependency>
io.reactivex.rxjava2
rxjava
2.1.0
io.vertx
vertx web客户端
3.4.1
io.vertx
vertx rx java
3.4.1
谢谢 您的环境中似乎存在DNS问题 通过在命令行上添加以下系统属性,尝试切换到JVM内置解析器:
-Dvertx.disableDnsResolver=true
顺便说一句,在调用方法的任何时候创建Vert.x实例和Web客户机都是不好的做法。您应该重复使用这两种方法的一个实例。谢谢!我认为DNS问题是暂时的,但是感谢您关于最佳实践的说明。
<dependency>
<groupId>io.reactivex.rxjava2</groupId>
<artifactId>rxjava</artifactId>
<version>2.1.0</version>
</dependency>
<dependency>
<groupId>io.vertx</groupId>
<artifactId>vertx-web-client</artifactId>
<version>3.4.1</version>
</dependency>
<dependency>
<groupId>io.vertx</groupId>
<artifactId>vertx-rx-java</artifactId>
<version>3.4.1</version>
</dependency>
-Dvertx.disableDnsResolver=true