如何使用Volley使用Parameter键和值解析数据

时间:2017-12-28 08:27:32

标签: android json android-volley

带参数键和值的ARC Json数据视图

Body Part Image

Header Part Image

Java类

public void jsonParse() {

    String fetchurl = getIntent().getStringExtra("fetch_url");

    JsonObjectRequest request = new JsonObjectRequest(Request.Method.POST, fetchurl, null, new Response.Listener<JSONObject>() {
        @Override
        public void onResponse(JSONObject response) {

            try {

                JSONArray jsonArray = response.getJSONArray("org_list");

                for (int i = 0; i < jsonArray.length(); i++) {

                    JSONObject patient = jsonArray.getJSONObject(i);

                    String Id = patient.getString("orga_orgid");
                    textView1.append(Id + "." + "\n\n");

                    String Name = patient.getString("orga_organame");
                    textView2.append(Name + " " + "\n\n");

                    progressbar.setVisibility(View.GONE);

                }

            } catch (JSONException e) {
                e.printStackTrace();
            }
        }
    }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
            error.printStackTrace();
        }
    })
    {
        @Override
        public String getBodyContentType() {
            return "application/x-www-form-urlencoded";

        }

        @Override
        public byte[] getBody() {
            Map<String, String> params = new HashMap<String, String>();
            params.put("api_key","123456789" );
            return super.getBody();
        }

        @Override
        public Map<String, String> getHeaders() throws AuthFailureError {
            Map<String, String> params = new HashMap<String, String>();
            params.put("Content-Type", "application/x-www-form-urlencoded");
            return params;
        }
    };
    requestQueue.add(request);
}

所以,这是我的java类,它不起作用;它显示了这个错误:

Unexpected response code 403 for http://xelwel.com.np/hamrosewaapp/api/get_organization_list

当我传递参数键和值时,即&#34; api_key&#34;和&#34; 123456789&#34;在检查ARC时从身体部位然后只显示网址的数据。所以,我认为当我在java代码中使用hashmap for body时,它可能会在我的应用程序中显示数据。有人知道这个问题吗?

1 个答案:

答案 0 :(得分:0)

试试这个

使用StringRequest并在getParams()方法中添加正文(您在邮递员中尝试)的参数。

 public void jsonParse() {
        String fetchurl = "http://xelwel.com.np/hamrosewaapp/api/get_organization_list";
        StringRequest stringRequest = new StringRequest(Request.Method.POST, fetchurl,
                new Response.Listener<String>() {
                    @Override
                    public void onResponse(String response) {
                        try {
                            Log.e("onResponse: ", response);

                        } catch (Exception e) {
                            e.printStackTrace();
                        }
                    }
                },
                new Response.ErrorListener() {
                    @Override
                    public void onErrorResponse(VolleyError error) {
                        //loading.dismiss();
                        Toast.makeText(TestActivity.this, "error", Toast.LENGTH_LONG).show();
                        Log.e("onErrorResponse: ", error + "");
                    }
                }) {
            @Override
            public String getBodyContentType() {
                return "application/x-www-form-urlencoded";
            }

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

            @Override
            protected Map<String, String> getParams() throws AuthFailureError {
                Map<String, String> params = new HashMap<>();
                //Adding the parameters to the request
                params.put("api_key", "123456789");
                Log.e("getParams: ", params + "");
                return params;
            }


        };
        //Adding request the the queue
        requestQueue.add(stringRequest);
    }

输出: - webservice的响应。根据需要解析它。

{
    "org_list": [
        {
            "orga_orgid": "1",
            "orga_organame": "Civil Service Hospital",
            "orga_orgaddress1": "New Banewshor",
            "orga_orgaddress2": " Kathmandu,Nepal",
            "orga_contactno": "977-1-4239161",
            "orga_email": "info@xelwel.com.np",
            "orga_website": "http://nationaltraumacenter.gov.np/",
            "orga_headerimg": null,
            "orga_footerimg": null,
            "orga_software": "Biomedical Inventory System",
            "orga_postdatead": null,
            "orga_postdatebs": null,
            "orga_posttime": null,
            "orga_postmac": null,
            "orga_postip": null,
            "orga_postby": null,
            "orga_modifydatead": null,
            "orga_modifydatebs": null,
            "orga_modifytime": null,
            "orga_modifymac": null,
            "orga_modifyip": null,
            "orga_modifyby": null,
            "orga_defaultpicker": "NP",
            "orga_loginactivities": "A",
            "orga_isdefaultdb": "Y",
            "orga_isuseraccess": "N",
            "orga_image": "trauma.png",
            "orga_isactive": "Y"
        },
        {
            "orga_orgid": "2",
            "orga_organame": "National Trauma Center",
            "orga_orgaddress1": "Mahankal",
            "orga_orgaddress2": " Kathmandu,Nepal",
            "orga_contactno": "977-1-4239161",
            "orga_email": "info@xelwel.com.np",
            "orga_website": "http://nationaltraumacenter.gov.np/",
            "orga_headerimg": null,
            "orga_footerimg": null,
            "orga_software": "Assets Management System",
            "orga_postdatead": null,
            "orga_postdatebs": null,
            "orga_posttime": null,
            "orga_postmac": null,
            "orga_postip": null,
            "orga_postby": null,
            "orga_modifydatead": null,
            "orga_modifydatebs": null,
            "orga_modifytime": null,
            "orga_modifymac": null,
            "orga_modifyip": null,
            "orga_modifyby": null,
            "orga_defaultpicker": "NP",
            "orga_loginactivities": "A",
            "orga_isdefaultdb": "Y",
            "orga_isuseraccess": "N",
            "orga_image": "trauma.png",
            "orga_isactive": "Y"
        }
    ]
}