在Java中为同一个URL获取不同的响应代码

时间:2018-01-22 07:31:37

标签: java httpurlconnection

我需要检查网址的响应代码是否为200。在循环中处理一系列URL时,其中一些URL为200,其他为503。即使所有URL都有效,并且在没有循环的情况下运行时返回200.

for (int i = 0; i < 10; i++) {
    URL url = new URL("https://www.amazon.in/dp/B01N6TDY3Y");
    HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
    int status = urlConnection.getResponseCode();
    System.out.println(status);
}

此代码每次打印不同的状态。这次是: 200 200 200 200 200 200 503 200 503 200.
即使网址每次都相同。知道为什么吗?

2 个答案:

答案 0 :(得分:1)

对于给定的网址,响应代码并不总是相同。这取决于处理请求时发生的情况或应用程序的设计者决定的内容。

200意味着永远没关系 503表示发生问题可能是游泳池耗尽而无法处理请求。

通常,当您请求API或端点时,您应该知道在开发代码之前服务器将返回您的调用的代码。

选中此Http codes

答案 1 :(得分:0)

通常,高可用性服务将在负载均衡器后面的许多Web服务器上实现。发送到服务的请求每次都可以转到不同的服务器。如果一个工作不正常,您可以看到对重复发送的同一请求的不同响应。

另一个因素是您可能正在重启正在重启的服务器,或者暂时超载的服务器。这就是503旨在表明的内容。