您好我正在尝试使用下面的代码对远程资源执行休息调用。在vertx 3.3.3上,它适用于defaulthttpclient(appache),但它不是异步的
我仍然得到错误: 十一月01,2016 8:15:08 AM io.vertx.core.http.impl.HttpClientRequestImpl GRAVE:java.net.ConnectException:连接被拒绝:localhost / 127.0.0.1:80
final HttpClient httpClient = vertx.createHttpClient();
final HttpGet getRequest = new HttpGet(uri);
httpClient.request(apiMethod.getHttpMethod(), uri, resultHandler -> {
resultHandler.statusCode();
if (resultHandler.statusCode() == 200) {
environment.setStatus(ApiStatus.OK);
apiMethod.setStatus(ApiStatus.OK);
} else {
environment.setStatus(ApiStatus.ERROR);
apiMethod.setStatus(ApiStatus.ERROR);
}
resultHandler.bodyHandler(buffer -> {
String message = "";
logger.debug("Output from Server .... \n");
logger.debug(buffer);
message = buffer.toString();
apiMethod.setCallingDate(new Date());
apiMethod.setCallingResult(message);
});
}).putHeader("content-type", "application/json").end();
有人可以帮忙吗?
致以最诚挚的问候,
答案 0 :(得分:2)
您似乎忘记将客户端配置为要连接到哪个主机和端口,并且正在使用默认值localhost:80
,因为您可以从异常中读取。
你应该做的事情如下:
httpClient.request(GET, "www.yourserver.com", 80, uri, res -> {
...
});
请注意uri
不是URL
所以应该是这样的:
/api/users?from=5&to=10
如果您正在寻找更紧凑的版本,那么您应该使用的是requestAbs
方法:
httpClient
.requestAbs(GET, "http://www.yourserver.com/api/users?from=5&to=10", res -> {
...
});