Vertx clientHttp:执行休息呼叫时连接关闭
Vertx clientHttp : Connection closed when perform rest call
3.3 并且我尝试以异步方式执行剩余 api 调用。为此,我尝试使用 httpClient,`final HttpClient httpClient = vertx.createHttpClient();
new HttpGet(uri);
httpClient.requestAbs(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 -> {
logger.debug("Output from Server .... \n");
buffer.toString();
});
}).exceptionHandler(handlerExc -> {
logger.error(" handle exception:" + handlerExc.getMessage(), handlerExc.getCause());
apiMethod.setStatus(ApiStatus.ERROR);
environment.setStatus(ApiStatus.ERROR);
apiMethod.setCallingResult(handlerExc.getMessage());
}).putHeader("content-type", "application/json").end();`
我仍然收到错误消息:连接已关闭。
当我卷曲请求或使用我的 browser/postman 时,它工作正常。
谁能知道我哪里错了?是网络问题吗?
最好的问候,
这里是完整的代码
final HttpClientOptions options = new HttpClientOptions();
options.setTrustAll(true);
final String proxyUrl = "yourProxyUrl.net";
options.setSsl(true);
int port = 443;
final ProxyOptions proxyOptions = new ProxyOptions().setHost(proxyUrl).setPort(port);
options.setProxyOptions(proxyOptions);
options.setDefaultPort(port);
HttpClient httpClient= vertx.createHttpClient(options);
httpClient.requestAbs(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 -> {
logger.debug("Output from Server .... \n");
buffer.toString();
});
}).exceptionHandler(handlerExc -> {
logger.error(" handle exception:" + handlerExc.getMessage(), handlerExc.getCause());
apiMethod.setStatus(ApiStatus.ERROR);
environment.setStatus(ApiStatus.ERROR);
apiMethod.setCallingResult(handlerExc.getMessage());
}).putHeader("content-type", "application/json").end();
3.3 并且我尝试以异步方式执行剩余 api 调用。为此,我尝试使用 httpClient,`final HttpClient httpClient = vertx.createHttpClient();
new HttpGet(uri);
httpClient.requestAbs(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 -> {
logger.debug("Output from Server .... \n");
buffer.toString();
});
}).exceptionHandler(handlerExc -> {
logger.error(" handle exception:" + handlerExc.getMessage(), handlerExc.getCause());
apiMethod.setStatus(ApiStatus.ERROR);
environment.setStatus(ApiStatus.ERROR);
apiMethod.setCallingResult(handlerExc.getMessage());
}).putHeader("content-type", "application/json").end();`
我仍然收到错误消息:连接已关闭。 当我卷曲请求或使用我的 browser/postman 时,它工作正常。 谁能知道我哪里错了?是网络问题吗? 最好的问候,
这里是完整的代码
final HttpClientOptions options = new HttpClientOptions();
options.setTrustAll(true);
final String proxyUrl = "yourProxyUrl.net";
options.setSsl(true);
int port = 443;
final ProxyOptions proxyOptions = new ProxyOptions().setHost(proxyUrl).setPort(port);
options.setProxyOptions(proxyOptions);
options.setDefaultPort(port);
HttpClient httpClient= vertx.createHttpClient(options);
httpClient.requestAbs(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 -> {
logger.debug("Output from Server .... \n");
buffer.toString();
});
}).exceptionHandler(handlerExc -> {
logger.error(" handle exception:" + handlerExc.getMessage(), handlerExc.getCause());
apiMethod.setStatus(ApiStatus.ERROR);
environment.setStatus(ApiStatus.ERROR);
apiMethod.setCallingResult(handlerExc.getMessage());
}).putHeader("content-type", "application/json").end();