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

标签 android android-volley

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

basicNetwork.performRequest: Unexpected response code 503 for http://...

问题不在于网址。我已经检查过了。 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

最佳答案

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
    }

关于android - Volley 字符串请求的意外响应代码 503(使用 Amazon Web Service),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34349428/

相关文章:

android - kotlin 抑制警告已弃用 Android

java - java 新手 - 需要了解一个对象如何接收 2 个不同的返回值

android - volley如何离线加载图片,volley是自动缓存图片还是需要缓存图片?

android - 使用 HttpUrlConnection 的 Volley 请求

android - 比较java中的两个gson转换对象

java - Android Sqlite 操作

android - 插件无法解决类型问题 - cordova-2.7.0

android - 如何使用 Intent 停止android中的 Activity ?

java - 如何使用 Retrofit 将 JSON 正文添加到我的发布请求中?

android - 是否可以使用 android-priority-jobqueue 库保留 Volley API 请求,以及当它返回错误或作业对象转到 onCancel 时?