调用APILayer货币转换服务时的代码404



我需要向APILayer发送一个请求。在浏览器中,它可以完美地工作。https://api.apilayer.com/currency_data/convert?to=USD&from=欧元;数量=5&apikey=

我想使用Vertx发送请求。

HttpClientOptions options = new HttpClientOptions();
options.setLogActivity(true);
options.setDefaultPort(8080);
HttpClient client = routingContext.vertx().createHttpClient(options);
client.request(HttpMethod.GET,"api.apilayer.com/currency_data/convert?to="+to+"&from="+from+"&amount="+amount+"&apikey=", response -> {
System.out.println("Received response with status code " + response.statusCode());
int code = response.statusCode();
if (code == 200) {
response.bodyHandler(bufferResponse -> {
JsonObject httpResult = bufferResponse.toJsonObject();
System.out.println("Received HTTP response with body " + httpResult);
});
} else {
response.bodyHandler(bufferResponse -> {
String httpResult = "{null}";
});
}
}).putHeader(HttpHeaders.CONTENT_TYPE, "").end();

我总是得到错误404。有人知道如何得到回应吗?

谢谢

HttpClientOptions options = new HttpClientOptions();
options.setLogActivity(true);
options.setDefaultPort(443);
options.setSsl(true);
HttpClient client = vertx.createHttpClient(options);
client.request(HttpMethod.GET, "api.apilayer.com", "/currency_data/convert?to=USD&from=EUR&amount=5&apikey=")
.compose(HttpClientRequest::send)
.onSuccess(response -> {
System.out.println("Received response with status code " + response.statusCode());
int code = response.statusCode();
if (code == 200) {
response.bodyHandler(bufferResponse -> {
JsonObject httpResult = bufferResponse.toJsonObject();
System.out.println("Received HTTP response with body " + httpResult);
});
} else {
response.bodyHandler(bufferResponse -> {
System.out.println("Received HTTP response with body " + bufferResponse.toString());
});
}
}).onFailure(Throwable::printStackTrace);

HttpClientOptions不正确。我修复了上面代码片段中的配置,它在我的本地上运行。

最新更新