3.3 and i try to perform rest api call in asynchronous way. for that i' try to use 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();`
I'm still get the error: Connection was closed. when i curl the request or use my browser/postman it works fine. can anyone have an idea of where i'm wrong? is it a network issue? Best regards,
here are the full code
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();