使用 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
s 放入其中。
您可能想尝试的是
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());
我有一个 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
s 放入其中。
您可能想尝试的是
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());