【问题标题】:Unexpected response code 500 for a POST request in Volley AndroidVolley Android 中 POST 请求的意外响应代码 500
【发布时间】:2015-12-18 13:00:12
【问题描述】:

我正在使用 Volley 向 http://api.weddingonclick.com/vendor/auths/ 发出 POST 请求

当我使用POSTMAN 时,响应很好

{
  "msg": "OTP sent"
}

但是当我使用 Volley 发送请求时,我得到了 ServerError 我以前使用相同的代码,它工作正常。突然它开始给我这个错误。

我的代码:

StringRequest firstTimeStringRequest = new StringRequest(StringRequest.Method.POST,
            "http://api.weddingonclick.com/vendor/auths/", new Response.Listener<String>() {
        @Override
        public void onResponse(String responseString) {
            Snackbar.make(sendButton, responseString, Snackbar.LENGTH_LONG).show();
        }
    }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
            Snackbar.make(sendButton, error.toString(), Snackbar.LENGTH_LONG).show();
        }
    }) {
        @Override
        protected Map<String, String> getParams() throws AuthFailureError {
            Map<String, String>  params = new HashMap<>();
            params.put("mobile", "1234567890");
            params.put("action", "sign_in");
            params.put("a_session", ""+41);
            params.put("a_source", "VENDOR_APP");
            return params;
        }

    };
    firstTimeStringRequest.setRetryPolicy(new DefaultRetryPolicy(0, -1, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
    Volley.newRequestQueue(this).add(firstTimeStringRequest);

为了调试,我创建了一个 requestbin 并从 POSTMAN 和我的应用程序发送了请求。我似乎找不到不同之处。

编辑:我错误地向 requestbin 发送了更多请求。请只考虑底部的第一个和第二个请求

这里是请求binhttp://requestb.in/13j4apk1?inspect

请帮忙

【问题讨论】:

  • 服务器需要一个带有我的代码中提到的参数的 POST 请求。我认为这很明显。
  • 请学习 HTTP 基础知识...服务器期望某种类型的内容(您发送一些没有任何类型的内容(json、二进制、纯文本等...)...不知道API 要求说不准
  • @Ishan:有更新吗?

标签: android android-volley


【解决方案1】:

有时情况:

这不是你的库问题,浏览器通常会忽略标题中的错误 500 并显示内容,但 volley 不会这样做并调用 onErrorResponse。我认为这是服务器端应用程序问题,但您可以在 onErrorResponse 中获得响应。为了说服自己,您可以添加 RESTClient mozilla 添加并发送您的 volley 请求并查看响应。在标题中它显示错误 500 内部服务器错误,但您可以在正文部分看到响应

【讨论】:

  • 正如我所提到的,使用 POSTMAN 发送请求是可行的。所以这不可能是服务器错误......我怎样才能看到 onErrorResponse 中的响应? onErrorResponse 只给了我一个 VolleyError 对象而不是响应体。
  • @Ishan 我提到了标题Sometime case。
  • 我看到了标题。但它一直在发生在我身上。怎么办?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-06
  • 1970-01-01
  • 1970-01-01
  • 2016-11-08
  • 2023-04-10
相关资源
最近更新 更多