android - 在 Postman 中获取响应代码 200 而不是在 Android 网络库中

标签 android android-volley retrofit2 internal-server-error

我有一个 POST 方法 API,它在 Postman 中给出 200 响应代码,但在使用 Volley 或什至在 Retrofit2 中调用 api 时却没有.

这是 Postman 截图:

enter image description here

这是我为 Volley 库代码所做的:

final String url = "http://xxxxxxxx.com/api/mobile/user/post/";

    StringRequest stringReq = new StringRequest(Request.Method.POST, url,
            new com.android.volley.Response.Listener<String>() {
                @Override
                public void onResponse(String response) {
                    Log.e("onResponse ===", response + " " );
                }
            },
            new com.android.volley.Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError error) {
                    Log.e("onErrorResponse ===", error + " " );
                }
            }) {
        @Override
        public Map<String, String> getHeaders() throws AuthFailureError {
            Map<String, String> params = new HashMap<>();
            params.put("Authorization", "xxxxxxxxxxxxx");
            return params;
        }

        @Override
        public Map<String, String> getParams() {
            HashMap<String, String> params = new HashMap<>();
            params.put("post_body", "test");
            return params;
        }
    };

    // Adding request to request queue
    mApp.addToRequestQueue(stringReq);
    stringReq.setRetryPolicy(new DefaultRetryPolicy(
            REQUEST_TIME,
            DefaultRetryPolicy.DEFAULT_MAX_RETRIES,
            DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));

错误 Logcat:

BasicNetwork.performRequest: Unexpected response code 500 for http://xxxxxxxxxxx.com/api/mobile/user/post/

最佳答案

问题是您的端点假定 multipart/form-data 请求(因为橙色 pin 在 Postman 中设置为 form-data radiobutton),而 Volley StringRequest 默认内容类型是 application/x-www-form-urlencoded,这就是您收到 500 错误的原因。

因此,如果您只应该在多部分请求中发送 POST 参数,请检查 this answer .但是如果你也想发送文件,检查another answer

关于android - 在 Postman 中获取响应代码 200 而不是在 Android 网络库中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41935546/

相关文章:

Android - HttpURLConnection POST 参数不起作用

android - 我的 Google+1 按钮显示为灰色且无法使用?

android-volley - 如何使用 android volley JsonObjectRequest 从 php 获取字符串响应?

android - RecyclerView 中的图像不会在启动时出现

android - Retrofit 2 附加 @Body 请求

java - 在我的响应中获取 302 重定向的 HttpException

java - 在 Android 应用程序中检索 Facebook 用户的个人资料图片时出现空指针

android - Volley 文件未使用 GSM 下载

java - 如何使用改造在 api post 方法中将字符串作为主体传递?

android maven 插件在 Eclipse 中没有获取 ANDROID_HOME env 变量