在Volley中使用JsonArrayRequest时如何发布请求参数

编程入门 行业动态 更新时间:2024-10-27 04:26:59
本文介绍了在Volley中使用JsonArrayRequest时如何发布请求参数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我是Json解析的新手.我正在尝试使用JsonArrayRequest读取json数据,但在发送参数和使用POST方法时有点困惑.在JsonObjectRequest的情况下,我可以发送方法类型,URL,参数,但是在JsonArrayRequest中如何发送参数例如用户名和密码,并使用POST方法.请帮帮我.这是我编写的代码.

I am newbie to Json parsing. I am trying to read a json data using JsonArrayRequest but I am little confused in sending parameters and use POST method.In case of JsonObjectRequest i can send the method type,url,params but In JsonArrayRequest how to send params like username and password and use POST method.please help me out.here is the code i have written.

final JsonArrayRequest jsonObjReq = new JsonArrayRequest(MySingleton.getInstance().getDOWNLOAD_SERVICES_URL(), new Response.Listener<JSONArray>() { @Override public void onResponse(JSONArray response) { try { if(response==null) { pDialog.hide(); } for (int i = 0; i < response.length(); i++) { jresponse = response.getJSONObject(i); } //String service_response = response.getString("SvcTypeDsc"); Toast.makeText(getActivity().getApplicationContext(), "services" + jresponse, Toast.LENGTH_SHORT).show(); } catch (JSONException e) { e.printStackTrace(); Log.d("soservices", "sos" + e.getMessage()); } } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { VolleyLog.d("Login request", "Error: " + error.getMessage()); Log.d("Volley Error:", "Volley Error:" + error.getMessage()); Toast.makeText(getActivity(), "Unable to connect to server, try again later", Toast.LENGTH_LONG).show(); pDialog.hide(); } }) { @Override protected Map<String, String> getParams() throws AuthFailureError { Map<String, String> params = new HashMap<String, String>(); params.put("uniquesessiontokenid","39676161-b890-4d10-8c96-7aa3d9724119"); params.put("loginname", userDet.getSAID()); params.put("password", "23295"); return super.getParams(); } @Override public int getMethod() { try { getParams(); } catch (AuthFailureError authFailureError) { authFailureError.printStackTrace(); } return super.getMethod(); } }; AppController.getInstance().addToRequestQueue(jsonObjReq, tag_json_obj); }

我的json数据如下:

my json data is like:

{ "username":"rushi", "firstname": "abc", }, { "username": "xyz", "firstname": "vxa", },

未发送参数.请帮我解决这个问题. 预先谢谢你.

The params are not being sent. Please help me solving this. Thank you in advance.

推荐答案

当使用JsonArrayRequest和POST方法时,这解决了我传递参数的问题.

This solved my problem to pass params when JsonArrayRequest and POST method is used.

Volley.newRequestQueue(getActivity()) .add(new JsonRequest<JSONArray>(Request.Method.POST, MySingleton.getInstance().getDOWNLOAD_SERVICES_URL(), jsonobj.toString(), new Response.Listener<JSONArray>() { @Override public void onResponse(JSONArray jsonArray) { Log.d("response", "res-rec is" + jsonArray); if (jsonArray == null) { pDialog.dismiss(); Snackbar.make(myview, "No services found", Snackbar.LENGTH_LONG).show(); } else { for (int i = 0; i < jsonArray.length(); i++) { try { pDialog.dismiss(); JSONObject jsonObject = jsonArray.getJSONObject(i); String desc = jsonObject.getString("SvcTypeDsc"); String image_url = jsonObject.getString("ThumbnailUrl"); // al_ImageUrls.add(image_url); al_list_of_services.add(desc); ad_servicesadapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1, al_list_of_services); lv_webservicesList.setAdapter(ad_servicesadapter); Log.d("imageurls", "imagesurl " + image_url); Log.d("services-list", "list is " + desc + " " + i); } catch (JSONException e) { e.printStackTrace(); } } } } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError volleyError) { VolleyLog.d("Login request", "Error: " + volleyError.getMessage()); Log.d("Volley Error:", "Volley Error:" + volleyError.getMessage()); Toast.makeText(getActivity(), "Unable to connect to server, try again later", Toast.LENGTH_LONG).show(); pDialog.dismiss(); } }) { @Override protected Map<String, String> getParams() throws AuthFailureError { Map<String, String> params = new HashMap<String, String>(); // params.put("uniquesessiontokenid", "39676161-b890-4d10-8c96-7aa3d9724119"); params.put("uniquesessiontokenid", userDet.getSessionToken()); params.put("said", userDet.getSAID()); params.put("SOId", "23295"); return super.getParams(); } @Override protected Response<JSONArray> parseNetworkResponse(NetworkResponse networkResponse) { try { String jsonString = new String(networkResponse.data, HttpHeaderParser .parseCharset(networkResponse.headers)); return Response.success(new JSONArray(jsonString), HttpHeaderParser .parseCacheHeaders(networkResponse)); } catch (UnsupportedEncodingException e) { return Response.error(new ParseError(e)); } catch (JSONException je) { return Response.error(new ParseError(je)); } // return null; } } );

更多推荐

在Volley中使用JsonArrayRequest时如何发布请求参数

本文发布于:2023-10-29 09:34:14,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1539351.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:参数   Volley   JsonArrayRequest

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!