Passing ArrayList to PHP using Android Asynchronous Http Client Issue

依然范特西╮ 提交于 2020-01-04 02:26:06

问题


Im trying to send ArrayList to PHP ($_POST) and use it as an array. I use Android Asynchronous Http Client http://loopj.com/android-async-http/

My code

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() { ... }

In PHP

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

shows only one item, as a string.

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

Debugging code shows

Array ( [descr_array] => 1 )

There is only one string, how can I solve it?


回答1:


If you want to get all values write:

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) );

But I prefer you to use Gson to convert Array to String and use one pair only:

Gson gson = new Gson(); 
String out = gson.toJson(array);
params.put("descr_array", out ); 



回答2:


This is what worked for me:

RequestParams params = new RequestParams();

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

It doesn't require you to add extra Headers or import other libraries and works for both JSON and XML.


The important thing to note here is the use of add instead of put. See the difference between the two.




回答3:


This worked for me...

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.....


来源:https://stackoverflow.com/questions/19094683/passing-arraylist-to-php-using-android-asynchronous-http-client-issue

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!