Volley字符串请求的意外响应代码503(使用Amazon Web Service)

时间:2015-12-18 06:06:44

标签: android android-volley

我正在向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
        }
});

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

e.g。

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

2 个答案:

答案 0 :(得分:0)

HTTP错误503 - 服务不可用
这意味着networkResponse为null,因为在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
    }

答案 1 :(得分:0)

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