代码之家  ›  专栏  ›  技术社区  ›  Alireza Noorali Pedro Gonzalez

如何使用volley将jsonObject作为表单数据发送到服务器

  •  1
  • Alireza Noorali Pedro Gonzalez  · 技术社区  · 7 年前

    我要发送一个 JsonObjectRequest 使用Volley库作为表单数据发送到服务器。我查过类似的问题。这些都不能解决我的问题。

    这是我需要的确切请求的邮差截图:

    Postman

    这是我的jsonObject,名为 myKey 其中包含一个jsonarray:

    {
     "myArray":[
        {
        "code":"FA95",
        "id":"94"
        }
     ]
    }
    

    这是我的请求方法:

    public static void getSomething(String url) {
    
        JsonObjectRequest request = new JsonObjectRequest(Request.Method.POST, url, null, new Response.Listener<JSONObject>() {
            @Override
            public void onResponse(JSONObject response) {
    
            }
        }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
    
            }
        }) {
            @Override
            public byte[] getBody() {
                return super.getBody();
            }
        };
    
        request.setRetryPolicy(new DefaultRetryPolicy(DefaultRetryPolicy.DEFAULT_TIMEOUT_MS, DefaultRetryPolicy.DEFAULT_MAX_RETRIES, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
        AppController.getInstance().addToRequestQueue(request);
    }
    

    我应该重写吗 getBody() 或不是?它到底应该返回什么呢?

    1 回复  |  直到 7 年前
        1
  •  1
  •   just    7 年前

    答案如下: https://stackoverflow.com/a/39718240/3024933

    您需要覆盖 getParams() 方法与应用 StringRequest 而不是 JsonObjectRequest .