【问题标题】:Unexpected response code 503 for Volley string request (using Amazon Web Service)Volley 字符串请求的意外响应代码 503(使用 Amazon Web Service)
【发布时间】:2016-03-24 19:08:11
【问题描述】:

我正在向 Volley 发出字符串请求。这是错误:

basicNetwork.performRequest:http://...的意外响应代码 503...

问题不在于网址。我已经检查过了。 url 是一些 XML 的地址,例如:

    <config>
        <Request name="ValidateEmailRequest">
            <requestqueue>emailrequest</requestqueue>
            <responsequeue>emailresponse</responsequeue>
        </Request>
        <Request name="CleanEmail">
            <requestqueue>Cleanrequest</requestqueue>
            <responsequeue>Cleanresponse</responsequeue>
        </Request>
    </config>

这是我的请求代码:

StringRequest myReq = new StringRequest(

    Request.Method.GET, 
    url,

    new Response.Listener<String>()
    {
        /** On response **/
        @Override
        public void onResponse(String response) {
            processData(response);
        }
    },

    new Response.ErrorListener()
    {
        @Override
        public void onErrorResponse(VolleyError error) {
            // handle error response
        }
});

我的请求队列有问题吗?我正在从不同的类向同一个静态请求队列发出多个请求,但直到现在这还不是问题。

例如

MyOtherClass.getRequestQueue();
//Request code for this class...
MyOtherClass.RequestQueue.add(myRequest);

编辑

我的网址正在运行。它们很快就会过期,因为它们已签名,但无论如何这里是一个。

http://webservices.amazon.com/onca/xml?AWSAccessKeyId=AKIAJ6L6R4KOPIYIUXUA&Artist=Bill%20Evans%20Trio&AssociateTag=mytag-20&Operation=ItemSearch&SearchIndex=Music&Timestamp=2015-12-18T06%3A15%3A23Z&Title=Sunday%20At%20the%20Village%20Vanguard&Signature=QG97Kngo6khD7jAD0TUIXmy07SW0fmKTsrKnUsaBvYw%3D

【问题讨论】:

  • 响应码 503 表示服务器端出现错误“服务不可用”。检查服务器日志发生了什么。
  • 我正在使用亚马逊网络服务,所以我不能。但是网址本身很好。但是网址本身很好。当我将网址复制并粘贴到浏览器中时,它们就可以工作了。只是没有 Volley。
  • 请发布该 AWS 网址以便我们检查:)
  • @BNK 该网址已签名,因此很快就会过期。反正我会发一个。
  • @BNK 是的!就是这样。谢谢 ! =)

标签: android android-volley


【解决方案1】:

HTTP 错误 503 - 服务不可用
这意味着 networkResponse 为空,因为在 TimeoutError 中没有从服务器接收到数据。

您还可以通过以下代码检查错误类型。
感谢 Submersed。

@Override
public void onErrorResponse(VolleyError error) {

    if (error instanceof TimeoutError || error instanceof NoConnectionError) {
        Toast.makeText(context,
                context.getString(R.string.error_network_timeout),
                Toast.LENGTH_LONG).show();
    } else if (error instanceof AuthFailureError) {
        //TODO
    } else if (error instanceof ServerError) {
       //TODO
    } else if (error instanceof NetworkError) {
      //TODO
    } else if (error instanceof ParseError) {
       //TODO
    }

【讨论】:

  • 但是网址本身很好。当我将网址复制并粘贴到浏览器中时,它们就可以工作了。只是没有 Volley。
  • @the_prole 太尴尬了!尝试增加超时时间!
  • 是的,这就是问题所在!我找到了解决方案here
  • @the_prole 哈哈哈 请求已过期。时间戳日期为 2015-12-18T06:32:02Z。 :p
  • 我收回了……这并没有解决我的问题=(我认为我的问题是我需要创建另一个请求队列
【解决方案2】:

我认为我的问题是我在亚马逊上同时对同一个产品图片提出了太多请求。一旦我限制了对同一产品图片的请求数量,我就停止收到 503 错误。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多