Отправить различные типы данных с Android на php с помощью Android Volley - PullRequest
0 голосов
/ 07 марта 2019

У меня есть приложение для Android.Я хочу отправить запрос POST в файл php.Параметры состоят из arrayList и Strings.Я хочу сделать что-то вроде этого:

private Map<String, String> params;

    public RequestPostBook(long id, ArrayList<String> bookNames, ArrayList<String> bookAuthors, ArrayList<String> subjects,
                           String date,Response.Listener<String> listener)
    {
        super(Method.POST, REGISTER_REQUEST_URL, listener, null);


        params = new HashMap<>();
        params.put("candidateId", id + "");
        params.put("bookName",bookNames);
        params.put("authorName",bookAuthors);
        params.put("subjectName",subjects);
        params.put("reqDate",date);
    }

    @Override
    public Map<String, String> getParams() {
        return params;
    }

Это дает ошибки, поскольку карта (Строка, Строка) .. Пожалуйста, помогите мне о том, как это сделать.Пожалуйста, исправьте этот код.Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 07 марта 2019

params - это Map<String, String>, поэтому он может принимать только String в качестве значений.Вы пытаетесь положить в нее ArrayList.Возможно, вы захотите попробовать

JSONArray bookNamesJSON = new JSONArray(Arrays.asList(bookNames));
JSONArray bookAuthorsJSON = new JSONArray(Arrays.asList(bookAuthors));
JSONArray subjectsJSON = new JSONArray(Arrays.asList(subjects));

, а затем передать эти объекты в параметры

params.put("bookName",bookNamesJSON.toString());
params.put("authorName",bookAuthorsJSON.toString());
params.put("subjectName",subjectsJSON.toString());
1 голос
/ 07 марта 2019

Проблема в том, что ваш Map состоит из <String,String>, а вы передаете ArrayList<String>. Вы должны сделать что-то вроде bookNames.toString(), тогда вы отправите String

Или вы также можете создать JSONArray следующим образом:

JSONArray types=new JSONArray(Arrays.asList.(bookNames));

А потом выполните types.toString() и должно работать.

Затем, чтобы декодировать его с помощью PHP, вы должны использовать json_decode function

$array = json_decode($json);
...