我正在尝试使用参数将jsonrequest发送到我的项目服务器,并希望获取jsonObject作为响应。下面是我的代码。
JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.GET, Const.URL_SERVER_STOCK, null
, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
System.out.println("Response is: "+response.toString());
test.setText(response.toString());
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.d(TAG,"Error: " + error
+ "\nStatus Code " + error.networkResponse.statusCode
+ "\nResponse Data " + error.networkResponse.data.toString()
+ "\nCause " + error.getCause()
+ "\nmessage" + error.getMessage());
}
}){
@Override
public Map<String, String> getHeaders() throws AuthFailureError {
Map<String, String> header = new LinkedHashMap<String, String>();
header.put("Content-Type", "text/plain;charset=UTF-8");
return super.getHeaders();
}
@Override
protected Map<String, String> getParams() throws AuthFailureError {
Map<String,String> params = new HashMap<String, String>();
params.put("stockId", String.valueOf(id));
return params;
}
};
AppController.getInstance().addToRequestQueue(jsonObjectRequest);
下面是我得到的:
I/System.out: id passing: 2
E/Volley: [3415] BasicNetwork.performRequest: Unexpected response code 400 for http://cs309-jr-4.misc.iastate.edu:8080/stock
D/str_log_req: Error: com.android.volley.ClientError
Status Code 400
Response Data [B@e14f879
Cause null
messagenull
以下是我的邮递员结果: enter image description here enter image description here
答案 0 :(得分:1)
Volley getParam()可以用于POST方法而不是GET方法。请按照以下教程获取详细信息:https://www.itsalif.info/content/android-volley-tutorial-http-get-post-put
答案 1 :(得分:0)
由于这是GET,因此您应该在网址中包含参数
Const.URL_SERVER_STOCK + "?stockId=" + selectedId;