3

我试图将 ArrayList 发送到 PHP ($_POST) 并将其用作数组。我使用 Android 异步 Http 客户端http://loopj.com/android-async-http/

我的代码

ArrayList<String> array = new ArrayList<String>();
array.add("1");
array.add("2");
array.add("3");
RequestParams params = new RequestParams();
params.put("descr_array", array );
AsyncHttpClient client = new AsyncHttpClient();
client.post(StaticValues.SERVER_PAGE, params, new AsyncHttpResponseHandler() { ... }

在 PHP 中

$descrarray[] = $_POST['descr_array'];

仅将一项显示为字符串。

$result = print_r($_POST);
print(json_encode($result));

调试代码显示

数组( [descr_array] => 1 )

只有一个字符串,我该如何解决?

4

3 回答 3

3

如果要获取所有值,请写入:

RequestParams params = new RequestParams();
params.put("descr_array_1", array.get(0) );
params.put("descr_array_2", array.get(1) );
params.put("descr_array_2", array.get(2) );

但我更喜欢你使用Gson将 Array 转换为 String 并且只使用一对:

Gson gson = new Gson(); 
String out = gson.toJson(array);
params.put("descr_array", out ); 
于 2013-09-30T12:53:51.110 回答
0

这对我有用:

RequestParams params = new RequestParams();

for (String val : array) {
    params.add("descr_array[]", val);
}

它不需要您添加额外的标头或导入其他库,并且适用于JSONXML.


这里要注意的重要一点是使用add代替put看看两者的区别

于 2014-12-25T16:35:15.083 回答
0

这对我有用...

Map<String, String> aMap = new HashMap<String, String>();
aMap.put("f_name" ,"");
aMap.put("l_name" ,"");
aMap.put("email" ,edtEmail.getText().toString());
RequestParams params = new RequestParams();
params.put("user",aMap);

AsyncHttpClient client = new AsyncHttpClient();
client.post(url, params, n.....
于 2015-04-04T16:10:07.037 回答