下午,
我有以下代码:
{ "criteriaelement": [ { "Value1" : "03", "FIEldname" : "InventLocationID", "Operator" : 0, "DataSourcename" : "Salestable" } ]}public JsONObject crear_Json_object(){ JsONObject param= new JsONObject(); JsONArray criteria_e= new JsONArray(); JsONObject param_obj= new JsONObject(); //agregamos los parametros al JsONOBJECT try{ param_obj.put("Value1","03"); param_obj.put("Operator",0); param_obj.put("DataSourcename","Salestable"); param_obj.put("FIEldname","InventLocationID"); criteria_e.put(param_obj); param.put("criteriaelement", criteria_e); msgResponse.setText(param.toString()); }catch(Exception e){} return param;}private voID get_sales_orders() { //para enviar objetos Json en lugar de null se deben enviar... JsonObjectRequest JsonObjReq = new JsonObjectRequest(Method.POST, Const.ws_Salesorders, crear_Json_object(), new Response.Listener<JsONObject>() { @OverrIDe public voID onResponse(JsONObject response) { Log.d(TAG, response.toString()); msgResponse.setText(response.toString()); //hIDeProgressDialog(); } }, new Response.ErrorListener() { @OverrIDe public voID one rrorResponse(VolleyError error) { VolleyLog.d(TAG, "Error: " + error.getMessage()); //hIDeProgressDialog(); } }) { //@OverrIDe public Map<String, String> getheaders() throws AuthFailureError { HashMap<String, String> headers = new HashMap<String, String>(); headers.put("Content-Type", "application/Json"); headers.put("Authorization", "Bearer "+access_token); return headers; } }; // Adding request to request queue myapplication.getInstance().addToRequestQueue(JsonObjReq, "sales");}
我的Jsonobject格式正确(我在Google Chrome的POST扩展中对此进行了测试),并且当我在此扩展中使用此Web服务时,就可以使用…
但是,将其传递给Volley时,我会收到一个httpstatus代码400,这意味着这是一个错误的请求…
有人可以帮忙吗??,我不知道为什么它不起作用,我错过了什么吗?
解决方法:
我认为这是您需要的:
JsONObject parameters = new JsONObject(); try { parameters.put("key", "value"); } catch (Exception e) { } JsonObjectRequest request = new JsonObjectRequest(Request.Method.POST, yourUrl, parameters,new Response.Listener<JsONObject>() { @OverrIDe public voID onResponse(JsONObject response) { Log.i("onResponse", response.toString()); } }, new Response.ErrorListener() { @OverrIDe public voID one rrorResponse(VolleyError error) { Log.e("onErrorResponse", error.toString()); } }) { @OverrIDe public Map<String, String> getheaders() throws AuthFailureError { Map<String, String> headers = new HashMap<>(); // Basic Authentication //String auth = "Basic " + Base64.encodetoString(CONSUMER_KEY_AND_SECRET.getBytes(), Base64.NO_WRAP); headers.put("Authorization", "Bearer " + accesstoken); return headers; } }; queue.add(request);
总结 以上是内存溢出为你收集整理的Android-Volley:如何使用承载访问令牌身份验证发送JSONObject全部内容,希望文章能够帮你解决Android-Volley:如何使用承载访问令牌身份验证发送JSONObject所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)