Volley jsonObjectRequest, как обрабатывать строковый результат - PullRequest
0 голосов
/ 08 ноября 2019

Я пытаюсь сделать POST-запрос к странице, параметры, необходимые для запроса, должны быть в формате json, потому что они в этом формате:

{
   a: 1,
   b: "ASD",
   c: ["A","B"]
}

, насколько я знаю, это не может бытьобратился к объекту Map<String, String>, который необходим для того, чтобы сделать StringRequest вместо JsonObjectRequest, при этом можно сказать, есть ли способ отправить jsonObject в качестве параметра и при этом иметь возможность обрабатывать строкуответ от сервера (Используя залп)?

Я уже прочитал эти вопросы:

Как обработать строковый ответ от php с помощью залпа Android JsonObjectRequest [com.android.volley.ParseError: org.json.JSONException]?

-Этот ответ не получен действующим ответом

Как получить строковый ответ из php с помощью залпа Android JsonObjectRequest?

-Этот вопрос не отвечает на мой вопрос

Залп - параметры POST / GET

-У этого ответа есть многообещающий ответ с пользовательскими запросами, но это противоположно тому, что я отношусьempting, и мне не удалось создать собственный запрос, который принимал нужные мне параметры.

1 Ответ

0 голосов
/ 08 ноября 2019

Оказывается, что публиковать что-то вроде a[0]:"1" и a[1]:"2" в параметрах хэш-карты - это то же самое, что и a: ["1","2"], поэтому я прекрасно использую StringRequest, так как он использует карту <String,String> для параметров, что, как говорится, закончилосьиспользуя это:

StringRequest xx = new StringRequest(Request.Method.POST, getAjaxUrlForFunction("Login"), new Response.Listener<String>() {
            @Override
            public void onResponse(String response) {
                Log.w("RESPONSE",response);
                callback.onSucces(response);
            }
        }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
                error.printStackTrace();
                callback.onError(error);
            }
        }){
            @Override
            protected Map<String, String> getParams() throws AuthFailureError {
                Map<String,String> paramss = new HashMap<String, String>();
                paramss.put("funcion","login");
                paramss.put("ajax_request","controller");
                paramss.put("args[0]", name);
                paramss.put("args[1]", password);
                return paramss;
            }
        };
...