繁体   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