Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Postman中获取响应代码200,但在Android网络库中不获取_Android_Android Volley_Retrofit2_Internal Server Error - Fatal编程技术网

在Postman中获取响应代码200,但在Android网络库中不获取

在Postman中获取响应代码200,但在Android网络库中不获取,android,android-volley,retrofit2,internal-server-error,Android,Android Volley,Retrofit2,Internal Server Error,我有一个POST方法API,它在Postman中给出了200个响应代码,但在使用凌空调用API时,甚至在2中都没有 以下是邮递员截图: 下面是我为截击所做的工作库代码: final String url = "http://xxxxxxxx.com/api/mobile/user/post/"; StringRequest stringReq = new StringRequest(Request.Method.POST, url, new com.andro

我有一个POST方法API,它在Postman中给出了200个响应代码,但在使用凌空调用API时,甚至在2中都没有

以下是邮递员截图:

下面是我为截击所做的工作库代码:

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));

问题是,您的端点假定
多部分/表单数据
请求(因为邮递员将橙色pin设置为
表单数据
单选按钮),而
凌空
StringRequest
的默认内容类型为
应用程序/x-www-form-urlcoded
,这就是为什么会出现500个错误


所以,如果您只应该在多部分请求中发送POST参数,请选中。但是如果您也想发送文件,请选中为什么不使用
JsonObjectRequest=newjsonobjectrequest(request.Method.POST,url,JSONObject,response,error)
对于post请求,它很容易使用try one

我还通过使用解决了相同的问题

 @Override
 public Map<String, String> getHeaders() throws AuthFailureError {
  final Map<String, String> headers = new HashMap<>();
  headers.put("Content-Type", "application/json");
  return headers;
 }
@覆盖
公共映射getHeaders()引发AuthFailureError{
最终映射头=新HashMap();
headers.put(“内容类型”、“应用程序/json”);
返回标题;
}

您能分享一下您的舱单吗?您是否添加了以下权限?“android.permission.INTERNET”“android.permission.ACCESS\u NETWORK\u STATE”ya man对此毫无疑问。500是一个服务器错误。我在这些情况下的经验通常与标题有关。邮递员在默认情况下添加了一些改型和截击没有的标题。有时服务器无法处理这种缺少头的情况,抛出500个。我建议你检查一下这个。这也可能是另一种方式。你可以从邮递员那里获得工作代码,正如它在“保存”按钮下提供的那样。我不知道你为什么忽略我的答案,似乎它解决了问题。这不是库的问题,它的标题是你的通行证,你能用安卓的离子网络库检查一下吗,或者在你通行证的时候在回复标题中检查邮递员,它会显示10吗
 @Override
 public Map<String, String> getHeaders() throws AuthFailureError {
  final Map<String, String> headers = new HashMap<>();
  headers.put("Content-Type", "application/json");
  return headers;
 }