Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android客户端错误,从Django服务器返回有效的JSON_Android_Django_Json - Fatal编程技术网

Android客户端错误,从Django服务器返回有效的JSON

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,所以我

我希望有人能帮助我

我有一个Django服务器,它将JSON返回到iOS应用程序。在Django服务器上,我们使用

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字符串。