簡體   English   中英

使用Android Volley將各種數據類型從android發送到php

[英]Send various data types from android to php using android volley

我有一個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;
    }

映射為(String,String),這會產生錯誤。.請幫助我了解如何完成它。 請更正此代碼。 提前致謝。

問題是您的Map<String,String>組成,並且您正在傳遞ArrayList<String> 您應該執行類似bookNames.toString()然后發送一個String

或者您也可以創建一個JSONArray ,如下所示:

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

然后執行types.toString()並且應該可以工作。

然后使用PHP對其進行解碼,您應該使用json_decode函數

$array = json_decode($json);

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

params.put("bookName",bookNamesJSON.toString());
params.put("authorName",bookAuthorsJSON.toString());
params.put("subjectName",subjectsJSON.toString());

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM