【发布时间】:2018-02-23 06:44:35
【问题描述】:
我试图在我的 Android 应用程序中从我的服务器检索响应,但收到“com.android.volley.ServerError” E/Volley:[224669] BasicNetwork.performRequest:http://52.74.115.250:8080/api/products 的意外响应代码 400
当我在 Postman 中尝试时,我确实得到了响应。
这是我的 GET 请求代码:
JsonObjectRequest jsonObjectRequest=new JsonObjectRequest(Request.Method.GET, Constants.productListUrlStr, null, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
Log.d("jsonsucces","success");
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.d("jsonerror",error.toString());
}
}) {
@Override
public Map<String, String> getHeaders() throws AuthFailureError {
Map<String, String> headers = new HashMap<>();
headers.put("Authorization", Constants.getToken(getActivity()));
//headers=globalProvider.addHeaderToken(getActivity());
return headers;
}
@Override
protected Map<String, String> getParams() throws AuthFailureError {
Map<String, String> params = new HashMap<>();
if (contract!=null){
if(contract._supplier!=null){
Log.d("checksupplier",contract._supplier);
params.put("_supplier",contract._supplier);
}
}
if(!globalProvider.ShangpingHeaderLoadCategory .equals("")){
params.put("category",globalProvider.ShangpingHeaderLoadCategory);
Log.d("checkcategoryhe",globalProvider.ShangpingHeaderLoadCategory);
}
return params;
}
};
globalProvider.addRequest(jsonObjectRequest);
我做错了什么?
【问题讨论】:
-
代码对我来说看起来不错。与服务器团队联系并检查他们的期望。
-
错误代码 400 表明这是一个错误的请求。在服务器端查看原因。
-
@Kunu 我在邮递员中再次检查,所以当我没有将 _supplier 添加到 GET 请求时,我得到 Unexpected response code 400 ,否则它工作正常。这意味着在我的 GET 请求中“getParams( )" 没有被调用。如何解决这个问题?
-
@SripadRaj 检查上面的评论,谢谢!
-
@user3792429 你试过
StringRequest吗?
标签: android get android-volley