У меня есть этот код для вызова jsonArray с моего сервера:

 String urlJsonObj = "http://myip/Services/ServiceOne.asmx/Search?name="+ searchValue + "" ;

    JsonArrayRequest jsonObjReq = new JsonArrayRequest(urlJsonObj,
            new Response.Listener<JSONArray>() {
                @Override
                public void onResponse( JSONArray response) {
                    Log.d(TAG, response.toString());
                    pDialog.hide();
                }
            }, new Response.ErrorListener() {

        @Override
        public void onErrorResponse(VolleyError error) {
            VolleyLog.d(TAG, "Error: " + error.getMessage());
            pDialog.hide();
        }
    }) {

        @Override
        public Map<String, String> getHeaders() throws AuthFailureError {
            HashMap<String, String> headers = new HashMap<String, String>();
            headers.put("Content-Type", "application/json; charset=utf-8");
            return headers;
        }

    };

    /// Adding JsonObject request to request queue
    AppController.getInstance().addToRequestQueue(jsonObjReq);

Это ожидаемый результат (тест с почтальоном):

[{"RaisonSocialId": 6108, "RaisonSocial": "entreprise 100", "Address": "100 rue Mamie Wata", "PhoneNumber": "425 438 944", "status": 0, "Message": null} , {"RaisonSocialId": 7008, "RaisonSocial": "entreprise 1000", "Address": "1000 rue Mamie Wata", "PhoneNumber": "167 874 826", "status": 0, "Message": null} , {"RaisonSocialId": 7009, "RaisonSocial": "entreprise 1001", "Address": "1001 rue Mamie Wata", "PhoneNumber": "299 595 556", "status": 0, "Message": null} , {"RaisonSocialId": 7010, "RaisonSocial": "entreprise 1002", "Address": "1002 rue Mamie Wata", "PhoneNumber": "559 751 823", "status": 0, "Message": null} ]

Журнал ошибок; BasicNetwork.performRequest: непредвиденный код ответа 400 для http: // myip / Services / ServiceOne.asmx / Search? Name = entreprise 30

Я что-то пропустил ??

1
Djama 1 Май 2017 в 19:31

3 ответа

Лучший ответ

На основе этого примера: https://gist.github.com/cblunt/162beb7ecfafa1bd2ad9, i изменил мой код и он работает

 String urlJsonObj= "http://myip/Services/ServiceOne.asmx/Search?name=entreprise";
 JsonArrayRequest request = new JsonArrayRequest(urlJsonObj,
            new Response.Listener<JSONArray>() {
                @Override
                public void onResponse(JSONArray jsonArray) {
                    Log.d("TAG_JSON_ARRAY", jsonArray.toString());

                }
            },
            new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError volleyError) {
                    Toast.makeText(SearchActivity.this, "Unable to fetch data: " + volleyError.getMessage(), Toast.LENGTH_SHORT).show();
                }
            });
0
Djama 2 Май 2017 в 12:48

Попробуйте использовать StringRequest и отправьте свои параметры в функцию getParams()

Код:

String url = "http://myip/Services/ServiceOne.asmx/Search";
StringRequest sr = new StringRequest(Request.Method.POST, url, new Response.Listener<String>() {
    @Override
    public void onResponse(String response) {
        Log.d(TAG, response.toString());
        pDialog.hide();
    }
}, new Response.ErrorListener() {
    @Override
    public void onErrorResponse(VolleyError error) {
        // error
        VolleyLog.d(TAG, "Error: " + error.getMessage());
        pDialog.hide();
    }
}) {

    @Override
    protected Map<String, String> getParams() {
        Map<String, String> params = new HashMap<String, String>();
        params.put("name", searchValue);
        return params;
    }

    @Override
    public Map<String, String> getHeaders() throws AuthFailureError {
        HashMap<String, String> headers = new HashMap<String, String>();
        headers.put("Content-Type", "application/json; charset=utf-8");
        return headers;
    }

};
0
rafsanahmad007 1 Май 2017 в 17:06

Используйте приведенный ниже код для получения ответа от сервера, также измените тип запроса GET / POST

 StringRequest stringRequest = new StringRequest(Request.Method.GET, url,
            new Response.Listener<String>() {
                @Override
                public void onResponse(String response) {
                    Log.v("response",""+response);
                    if(response!=null){
                        try {
                   //write your json parsing code here
                            }
                        } catch (JSONException e) {
                            e.printStackTrace();
                        }
                    }
                }
            },
            new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError error) {
                    VolleyLog.d("TAG", "Error: " + error.getMessage());
                    Log.v("error",""+error);
                }
            }){
@Override
            public Map<String, String> getHeaders() throws AuthFailureError {
                HashMap<String, String> headers = new HashMap<String, String>();
                headers.put("Content-Type", "application/json; charset=utf-8");
            return headers;
        }
       @Override            
           protected Map<String,String> getParams(){
            Map<String,String> params = new HashMap<String, String>();


            return params;
        }

    };
0
Sandeep dhiman 2 Май 2017 в 01:50