繁体   English   中英

服务器返回HTTP响应代码:503为URL

[英]Server returned HTTP response code: 503 for URL

当我多次调用Amazon Product Advertising API时,获取“线程中的异常”主“java.io.IOException:服务器返回HTTP响应代码:503 for URL ”错误。

这是服务超载的原因吗? 一种可能的解决方案是使用Thread.Sleep(毫秒)方法。

但还有其他更复杂的解决方案吗? 像代理什么的?

以下是用于建立连接的代码:

URL amazon = new URL(url);
        URLConnection yc = amazon.openConnection();
        BufferedReader in = new BufferedReader(
                                new InputStreamReader(
                                yc.getInputStream()));

我正在使用Java!

来自http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html ,它定义了这些状态代码:

10.5.4 503服务不可用

由于服务器的临时过载或维护,服务器当前无法处理请求。 这意味着这是一个暂时的条件,经过一段时间的延迟后会得到缓解。 如果已知,则可以在Retry-After报头中指示延迟的长度。 如果没有给出Retry-After,客户端应该像处理500响应一样处理响应。
注意:503状态代码的存在并不意味着服务器在变得过载时必须使用它。 有些服务器可能希望简单地拒绝连接。

所以,是的,服务器过载可能是原因。 要弄清楚如何处理这个问题,你可能想与操作该服务的人讨论它,以了解他们可以容忍的内容。 然后,如果您在SO上搜索“限制网络请求”,您会发现一些关于如何在了解您的要求后实施限制的讨论。

编辑

现在我看到你在谈论亚马逊广告API,快速搜索让我到这个页面: http//docs.aws.amazon.com/AWSECommerceService/latest/DG/TroubleshootingApplications.html

该页面上的效率指南非常明确地说明了触发问题的原因以及可接受的请求率。

HTTP 503表示请求的服务不可用。

可能是由于,

1)服务器可能正忙

2)服务器可能因维护而停机

如果您正在访问某项service并收到此错误,请尝试联系service所有者以了解正在发生的情况。

如果您是该服务的所有者,请检查日志中的错误以找出问题所在。

如果您只是从客户端类中获取许多与服务的连接,并且遇到此错误,那么您需要考虑为什么需要创建这么多连接。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM