У меня возникли проблемы с отправкой запроса JSON POST на мой сервер.JSON Array с RequestParams в Android Асинхронный клиент Http
Мой сервер принимать POST с приложения/JSON как тип и пример будет выглядеть так:
{
"name": "Group4",
"users": [
{"email": "[email protected]"},
{"email": "[email protected]"},
]
}
Если я пошлю это клиентом REST я получаю 200 OK в ответ, все отлично.
Мой Android-клиент использует Android Async HTTP Library (http://loopj.com/android-async-http/) и документацию к классу RequestParams здесь https://loopj.com/android-async-http/doc/com/loopj/android/http/RequestParams.html
RequestParams params = new RequestParams();
String userName = getUserName();
List<String> userList = getUserList();
params.put("name", userName);
JSONArray users = new JSONArray();
for(String user : userList) {
JSONObject obj = new JSONObject();
try {
obj.put("email", user);
} catch (JSONException e) {
// ...
}
users.put(obj);
}
params.put("users", users);
Я думал, что это будет создавать именно в JSON, как мой пример. Я не знаю, есть ли у меня возможность получить строку JSON этого RequestParams. Я могу только получить доступ к параметру в виде строки:
name=Test&users=[{"email":"[email protected]"}, {"email":"[email protected]"}]
Мой сервер не даже принять запрос и не непосредственно с ошибкой:
AttributeError: 'unicode' object has no attribute 'iteritems'
Проблема должна быть в точке, где я создайте RequestParams. Может кто-нибудь сказать мне, что с этим не так? Я думал, что мне нужно создать массив с именем «users», а затем добавить в него объекты с ключевыми значениями.