在Postman中获取响应代码200,但在Android网络库中不获取
我有一个POST方法API,它在Postman中给出了200个响应代码,但在使用凌空调用API时,甚至在2中都没有 以下是邮递员截图: 下面是我为截击所做的工作库代码:在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
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;
}