Android客户端错误,从Django服务器返回有效的JSON
我希望有人能帮助我 我有一个Django服务器,它将JSON返回到iOS应用程序。在Django服务器上,我们使用Android客户端错误,从Django服务器返回有效的JSON,android,django,json,Android,Django,Json,我希望有人能帮助我 我有一个Django服务器,它将JSON返回到iOS应用程序。在Django服务器上,我们使用 return HttpResponse(json.dumps(session_dict),mime_type) 将JSON作为(通过Wireshark)返回到客户端 2f {“会话”:“bcb493fb21ae8fcd9152e1924b3e5d9a”} 0 这个响应对于能够被iOS JSON客户端库解析的iOS应用程序来说是有效的。对我来说,这看起来不像是有效的Json,所以我
return HttpResponse(json.dumps(session_dict),mime_type)
将JSON作为(通过Wireshark)返回到客户端
2f
{“会话”:“bcb493fb21ae8fcd9152e1924b3e5d9a”}
0
这个响应对于能够被iOS JSON客户端库解析的iOS应用程序来说是有效的。对我来说,这看起来不像是有效的Json,所以我很惊讶它能工作
但是,如果我在Android中使用以下命令,我会得到一个错误:
无法将java.lang.String类型的值会话转换为JSONObject
jsonObjSend.put("username", strUserName);
jsonObjSend.put("password", strPassword);
Add a nested JSONObject (e.g. for header information)
JSONObject header = new JSONObject();
header.put("deviceType","Android"); // Device type
header.put("deviceVersion","2.0"); // Device OS version
header.put("language", "es-es");
jsonObjSend.put("header", header);
// Output the JSON object we're sending to Logcat:
Log.i(TAG, jsonObjSend.toString(2));
} catch (JSONException e) {
e.printStackTrace();
}
try {
// Send the HttpPostRequest and receive a JSONObject in return
JSONObject jsonObjRecv = HttpClient.SendHttpPost(URL, jsonObjSend);
String sessionId = jsonObjRecv.getString("session");
有什么建议吗
谢谢,
Greg您的HttpClient.sendHttpPost方法是否返回JSONObject?不确定它是否自动将HTTP POST中的响应主体解析为JSONObject。如果没有,那么您就必须使用或使用类似Gson的库来实现这一点。谷歌的Gson可能是一个更好的选择,您可以直接将实例转换为json字符串,例如
User user =new User("tom","12");
Gson gson =new Gson();
json=gson.toJson(user);
谢谢,我在Http客户端犯了几个愚蠢的错误。我修复了类以发送正确的编码,流返回了正确的json字符串。