Android Volley: на сервере получено нулевое значение для параметров String, отправленных с запросом POST

Я отправляю POST запрос вместе со строковыми данными с устройства Android с использованием библиотеки Volley.

Однако сервер получает только null значений для параметров. Мой код выглядит так:

        final String param1 = "one";
        final String param2 = "124843";
        final String param3 = "878942";
        final String param4 = "885942";

        String url = getIPAddr()+":"+getPort()+"/com.va.jersey.helloworld/hello";
        RequestQueue queue = Volley.newRequestQueue(getBaseContext());

        StringRequest stringRequest = new StringRequest(Request.Method.POST,url, 
                new Response.Listener<String>() {
                    @Override
                    public void onResponse(String response) {
                        showOutput(response);
                    }
                },new Response.ErrorListener() {
                    @Override
                    public void onErrorResponse(VolleyError error) {
                        showOutput(error.toString());
                    }
                }){
                @Override
                protected Map<String, String> getParams() throws AuthFailureError {
                    Map<String, String> params = new HashMap<String, String>();
                    params.put("param1", param1);
                    params.put("param2", param2);
                    params.put("param3", param3);
                    params.put("param3", param4);
                    return params;
                }       //attaching POST params
        };
        queue.add(stringRequest);

Я считаю, что в StringRequest есть ошибка, исправьте ...


person anant sophia    schedule 14.05.2015    source источник


Ответы (1)


Используйте приведенный ниже код и дайте мне знать, если у вас возникнут какие-либо проблемы.

    JsonObjectRequest jsonObjReq = new JsonObjectRequest(Method.POST,
        url, null,
        new Response.Listener<JSONObject>() {

            @Override
            public void onResponse(JSONObject 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();
            }
        }) {

    /**
     * Passing some request headers
     * */
    @Override
    public Map<String, String> getHeaders() throws AuthFailureError {
        HashMap<String, String> headers = new HashMap<String, String>();
        headers.put("Content-Type", "application/json");
        headers.put("apiKey", "xxxxxxxxxxxxxxx");
        return headers;
    }

};

// Adding request to request queue
AppController.getInstance().addToRequestQueue(jsonObjReq, tag_json_obj);
person Vinay Jayaram    schedule 14.05.2015
comment
Ошибка: org.json.JSONException: значение nullnullnullnull типа java.lang.String не может быть преобразовано в JSONObject - person anant sophia; 14.05.2015
comment
не могли бы вы просто дать мне URL-адрес, по которому вы звоните ?. - person Vinay Jayaram; 14.05.2015
comment
Другой пост на SO http://stackoverflow.com/questions/28135008/unexpected-response-code-500-for-post-method рассказывает что-то о замене null в ObjectRequest чем-то ... (я не понимаю) ... - person anant sophia; 14.05.2015
comment
URL-адрес _1 _.... Я получаю правильный ответ от HttpRequester надстройки firefox - person anant sophia; 14.05.2015
comment
это POST или GET ?. Также вы можете сказать мне, какой вывод будет в формате json или string? - person Vinay Jayaram; 14.05.2015
comment
пришлите мне сам вывод строки - person Vinay Jayaram; 14.05.2015
comment
Я только добавляю param2 и param3 и отправляю их обратно ... для тестовой цели - person anant sophia; 14.05.2015
comment
Я ожидаю ответа от сервера. - person Vinay Jayaram; 14.05.2015
comment
Давайте продолжим это обсуждение в чате. - person anant sophia; 14.05.2015