Volley Post JsonArrayRequest выдает ошибку клиента, тестируя те же входные данные в работах почтальона - PullRequest
0 голосов
/ 20 января 2019

Я использую 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 голосов
/ 07 февраля 2019

На случай, если кто-то застрянет с той же проблемой, я решил ее:

  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);
...