Параметры отправки Volley и тело JSON

Я хочу отправить некоторые данные на сервер, и у данных есть некоторые параметры, и у них есть большой текст JSON. Я пытаюсь использовать Volley для отправки этих данных. Функция getParams() почему-то никогда не вызывается.

Вот мой код:

final StringRequest stringReq = new StringRequest(Request.Method.POST, API_URL, new Response.Listener<String>() {
    @Override
    public void onResponse(String response) {
        if (Util.IS_DEBUG_LOGGABLE) {
            Log.d(TAG, "onResponse: Sent Data");
        }
        Toast.makeText(getContext(), R.string.config_changed, Toast.LENGTH_SHORT).show();
    }
}, new Response.ErrorListener() {
    @Override
    public void onErrorResponse(VolleyError error) {
        if (Util.IS_DEBUG_LOGGABLE) {
            Log.d(TAG, "onErrorResponse: Data Not Sent Because server could not verify");
        }
        Toast.makeText(getContext(), getString(R.string.msg_data_not_sent, error), Toast.LENGTH_SHORT).show();
    }
}) {

    @Override
    protected Map<String, String> getParams() throws AuthFailureError {
        Map<String, String> pars = new HashMap<>();
        if (Util.IS_DEBUG_LOGGABLE) {
            Log.d(TAG, "getParams: Called");
        }
        pars.put(PARAM1, "testf18");
        pars.put(PARAM2, "Save");
        return pars;
    }

    @Override
    public byte[] getBody() throws AuthFailureError {
        try {
            if (Util.IS_DEBUG_LOGGABLE) {
                Log.d(TAG, "getBody: Called");
            }
            return response.toString().getBytes("utf-8");
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
            VolleyLog.wtf("Unsupported Encoding while trying to get the bytes of %s using %s", response.toString(), "utf-8");
            return null;
        }
    }
};

RequestHelperClass.addToRequestQueue(stringReq, getContext());

Пожалуйста помоги.

Вы проверяли запрос через почтальона?

Navneet Krishna 10.07.2018 07:35

Запрос обращается к сервлету, который работает в Google App Engine, и я вижу запрос там, и он говорит, что Param1 и Param2 равны нулю.

Mehul garg 10.07.2018 07:38

проверьте, правильны ли ключи - PARAM1, PARAM1 и совпадает с тем, что ожидает ваш бэкэнд, если это не сработало, поделитесь своим URL-адресом api

Navneet Krishna 10.07.2018 07:42

Да, они правы. Функция getParams() не вызывается

Mehul garg 10.07.2018 07:43

поделитесь своим URL-адресом API, ключами параметров

Navneet Krishna 10.07.2018 08:00

Я исправил проблему, используя HttpUrlConnection вместо Volley.

Mehul garg 10.07.2018 14:55
0
6
69
0

Другие вопросы по теме