Volley Post JsonArrayRequest在测试邮递员作品中的相同输入时给出了客户端错误

时间:2019-01-20 09:38:48

标签: android android-volley hubspot

我正在使用Volley将Post请求发送到HubSpot,当我发送JSON Array对象以请求它给com.android.volley.ClientError时,以及当我记录提供给JSONArrayRequest的输入并将其复制到邮递员时,它可以正常工作

尝试了所有内容,但仍然存在相同的错误。

这是我登录时jsonarrayobj的外观。

    [
{
    "name": "subject",
    "value": "Custom Subject"
},
{
    "name": "email",
    "value": "demo@demo.com"
},
{
    "name": "site",
    "value": "Site 3"
},
{
    "name": "device",
    "value": "demo-0005"
},
{
    "name": "content",
    "value": "This is content"
},
{
    "name": "hs_pipeline",
    "value": ""
},
{
    "name": "hs_pipeline_stage",
    "value": ""
}
    ]

和我的代码:

    JSONArray jsonArray=new JSONArray();

    Map<String,String> firstnameobj=new HashMap<String,String>();
    for (int i=0;i<7;i++) {
        firstnameobj.put("name", cool.get(i));
        firstnameobj.put("value", data[i]);
        jsonArray.put(new JSONObject(firstnameobj));
        firstnameobj.clear();
    }
    String url="https://api.hubapi.com/crm-objects/v1/objects/tickets?hapikey=MY-API-KEY";

    JsonArrayRequest jsonArrayRequest=new 
    JsonArrayRequest(Request.Method.POST, url,jsonArray, new 
    Response.Listener<JSONArray>() {
        @Override
        public void onResponse(JSONArray response) {
            Toast.makeText(getContext(),"Updated 
     ",Toast.LENGTH_SHORT).show();
        }
    }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
            Toast.makeText(getContext(),"Error Adding Ticket 
    "+error.toString(),Toast.LENGTH_LONG).show();
            Log.e("error",error.toString());
        }
    }){

        @Override
        public Map<String, String> getHeaders() throws AuthFailureError {
            Map<String, String> customHeader=new HashMap<String, String>();
            customHeader.put("Content-Type","application/json");
            return customHeader;
        }


    };
        requestQueue.add(jsonArrayRequest);

1 个答案:

答案 0 :(得分:0)

万一有人遇到同样的问题,我可以通过以下方法解决:

  StringRequest request=new StringRequest(Request.Method.POST, url, new 
Response.Listener<String>() {
        @Override
        public void onResponse(String response) {
            Toast.makeText(getContext(),"Created !",Toast.LENGTH_LONG).show();

        }
    }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
            Toast.makeText(getContext(),"Error Adding Ticket",Toast.LENGTH_LONG).show();

        }
    }){
        @Override
        public byte[] getBody() throws AuthFailureError {
            return jsonArray.toString().getBytes();
        }

        @Override
        public Map<String, String> getHeaders() throws AuthFailureError {
            Map<String, String> customHeader=new HashMap<String, String>();
            customHeader.put("Content-Type","application/json");
            return customHeader;
        }
    };



     requestQueue.add(request);
相关问题