从Android发送POST json并在Django上接收
我正在尝试让android应用程序与Django中的服务器交互。 该应用程序正在尝试将json数据发布到Django。但是,我无法在Django端接收对象。 request.POST的值为,但发送的数据不是空的。下面是来自android的POST请求的代码片段从Android发送POST json并在Django上接收,android,django,post,Android,Django,Post,我正在尝试让android应用程序与Django中的服务器交互。 该应用程序正在尝试将json数据发布到Django。但是,我无法在Django端接收对象。 request.POST的值为,但发送的数据不是空的。下面是来自android的POST请求的代码片段 public static String POST(String url,JSONObject obj){ InputStream inputStream = null; String result = ""; t
public static String POST(String url,JSONObject obj){
InputStream inputStream = null;
String result = "";
try{
HttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost(url);
String json = obj.toString();
StringEntity se = new StringEntity(json);
httpPost.setEntity(se);
httpPost.setHeader("Accept", "application/json");
httpPost.setHeader("Content-type","application/json");
HttpResponse httpResponse = httpClient.execute((HttpUriRequest)httpPost);
inputStream = httpResponse.getEntity().getContent();
if(inputStream!=null){
result = convertInputStreamToString(inputStream);
}else{
result = "Did not work!";
}
}catch(Exception e){
}
return result;
}
编辑:
早些时候,我遇到了CSRF错误,并以这种方式处理它。我还没有和Django合作过,不知道这是否是处理CSRF错误的正确方法
@csrf_exempt
def search(request):
logger.debug(request.POST)
"""Code for JSON object processing"""
如果您能帮我解决这个问题,我们将不胜感激。好的,我的java不是很流利,但我觉得您的请求格式很好 我认为问题在于,您将数据作为json字符串发送,而不是像原始表单一样发送。这样做时,数据不会显示在request.POST中,而是按原样显示在request.body中:json字符串,而不是类似表单的数据 所以我认为你必须采取以下方法之一: 从Android应用程序以与json不同的形式发送数据。这样,您将在request.POST或 将request.body翻译成dict并使用它而不是request.POST
希望这有帮助!: 好的,我的java不是很流利,但我觉得你的请求格式很好 我认为问题在于,您将数据作为json字符串发送,而不是像原始表单一样发送。这样做时,数据不会显示在request.POST中,而是按原样显示在request.body中:json字符串,而不是类似表单的数据 所以我认为你必须采取以下方法之一: 从Android应用程序以与json不同的形式发送数据。这样,您将在request.POST或 将request.body翻译成dict并使用它而不是request.POST
希望这有帮助!: 事实上,它起了作用。json对象位于request.body中。非常感谢。确实有帮助。json对象位于request.body中。谢谢。