我正在使用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);
答案 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);