如何使用volley(Android)在JSON中发送POST请求并在JSON中发送响应

时间:2016-03-16 12:09:53

标签: android json post android-volley

    private void login(){
   // Post params to be sent to the server
   Map<String, String> params = new HashMap<String, String>();
   params.put("user_id", username);
   params.put("password", password);


   JsonObjectRequest req = new JsonObjectRequest(login_URL, new JSONObject(params),
           new Response.Listener<JSONObject>() {
               @Override
               public void onResponse(JSONObject response) {
                   VolleyLog.v("Response:%n %s", response.toString());
               }
           }, new Response.ErrorListener() {
       @Override
       public void onErrorResponse(VolleyError error) {
           VolleyLog.e("Error: ", error.getMessage());
       }
   }){
       /**
        * Passing some request headers
        * */
       @Override
       public Map<String, String> getHeaders() throws AuthFailureError {
           HashMap<String, String> headers = new HashMap<String, String>();
           headers.put("Content-Type", "application/json; charset=utf-8");
           return headers;
       }

   };
// add the request object to the queue to be executed
   AppController.getInstance().addToRequestQueue(req);}

我收到以下错误: E / Volley:[1] 10.onErrorResponse:错误:

我不知道问题在哪里

json发帖子: { &#34;&#34;:&#34;&#34 ;, &#34;&#34;:&#34;&#34 ;, &#34;&#34;:&#34;&#34 ;, } json回复如下: {&#34;&#34;:&#34;&#34;}

2 个答案:

答案 0 :(得分:0)

您应该将Request.Method.POST添加为新JsonObjectRequest方法的第一个参数。同时废弃新的'JSONObject(params)'。

现在覆盖getParams覆盖之上的getParams()方法,并在那里添加登录方法的内容。你应该返回params。

它应该工作。如果您有任何挑战,请告诉我。 :)

一个非常好的例子是here

答案 1 :(得分:0)

Volley图书馆可以使用平地机进行整合,如果您想了解排球请求的实施情况,那么以下链接可以为您提供所有类型的请求,您可以通过截击以及如何实现它。

你去吧

http://www.androidhive.info/2014/05/android-working-with-volley-library-1/