[英]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.