【发布时间】:2019-10-14 18:24:35
【问题描述】:
我正在尝试向另一个 API 发出 GET 请求以获取 json 响应。
当我使用以下代码发出请求时,我收到 HTTP 504 错误(网关超时错误)。
但是,当我通过 REST 客户端工具尝试时,请求不会引发任何错误。
如何增加代码中的时间间隔以避免超时错误?
这是调用的样子:
HttpClient httpClient = getBasicAuthDefaultHttpClient();
String url= "http://XXXXX";
HttpGet httpGet = new HttpGet(url);
httpGet.addHeader("id", id);
httpGet.addHeader("secret", secret);
httpGet.addHeader("network_val", networkval);
HttpResponse response = httpClient.execute(httpGet);
HttpEntity entity = response.getEntity();
if (entity != null && response.getStatusLine().getStatusCode() == HttpStatus.OK.value()) {
ObjectMapper objectMapper = new ObjectMapper();
restInfo = objectMapper.readValue(entity.getContent(), MyClass.class);
} else {
logger.error("Call to API failed: response code = {}", response.getStatusLine().getStatusCode());
}
请注意:
这可能与“https”有关吗?
当我通过Insomnia REST Client 尝试使用“http”时,我收到错误:错误:从对等方接收数据时失败。 https 工作正常,没有任何错误 (https://XXXXX)
【问题讨论】:
-
请发帖MCVE。在这段代码中,您甚至没有执行您的 Get 请求。
-
我刚刚更新了。
-
端点可能没有在标准的
http端口上监听,可能只在https上提供服务,所以是的,试试https。除此之外,在对服务器了解不多的情况下,我们无能为力。
标签: java http http-headers http-status-code-504