在发布请求时出现 volley 客户端错误

时间:2021-07-15 03:34:30

标签: android android-volley

我正在尝试使用如下截击将数据传递给 api

    RequestQueue requestQueue = Volley.newRequestQueue(context);

    Map<String, String> params = new HashMap();
    params.put("fullName","some name");
    params.put("phone","some phone number");
    JSONObject parameters = new JSONObject(params);

    JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.POST, url,parameters, new Response.Listener<JSONObject>() {
        @Override
        public void onResponse(JSONObject response) {
            Log.d("jdjd","response = "+response);
        }
    }
            , new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
            Log.d("jdjd","response_error = "+error);
        }
    })
    {
        @Override
        public Map<String, String> getHeaders() throws AuthFailureError {
            Map<String, String>  params = new HashMap<String, String>();
            params.put("api-key", "my_api_key");
            return params;
        }
    };
    requestQueue.add(jsonObjectRequest);

我也试过

params.put("Content-Type", "application/json; charset=utf-8");

然后添加

        @Override
        public String getBodyContentType() {
            return "application/json";
        }

任何帮助将不胜感激

1 个答案:

答案 0 :(得分:0)

       StringRequest request=new StringRequest(Request.Method.POST, "url", new Response.Listener<String>() {
                @Override
                public void onResponse(String response) {
    
                    Log.e("TAG", "onResponse: "+response );
    
                }
            }, new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError error) {
    
                }
            }){
    
                @Override
                protected Map<String, String> getParams()  {
//put your all parameter here
                    HashMap<String,String> hashMap =new HashMap<>();
                    hashMap.put("pair_id","1");
                    hashMap.put("pair_symbol","BTC_USDT");
                    return hashMap;
                }
            };
            Volley.newRequestQueue(getContext()).add(request);

试试这个