从Android应用程序向Django视图发送POST请求
我正在尝试从android设备读取QRCode,并将提取的ID发送到使用Django构建的web服务器 我遵循教程,数据被正确地发送到教程服务器。 然后我将发送的数据自定义为一个整数(id),并将其发送到我的服务器链接,但view方法根本没有启动 我的代码: Android代码:从Android应用程序向Django视图发送POST请求,android,django,Android,Django,我正在尝试从android设备读取QRCode,并将提取的ID发送到使用Django构建的web服务器 我遵循教程,数据被正确地发送到教程服务器。 然后我将发送的数据自定义为一个整数(id),并将其发送到我的服务器链接,但view方法根本没有启动 我的代码: Android代码: public void onActivityResult(int requestCode, int resultCode, Intent intent) { if (requestCode == 0) {
public void onActivityResult(int requestCode, int resultCode, Intent intent) {
if (requestCode == 0) {
if (resultCode == RESULT_OK) {
String data = intent.getStringExtra("SCAN_RESULT");
new HttpAsyncTask().execute("https://bfish.neuro.mpg.de/baierlab/inventory/");
}
}
}
private class HttpAsyncTask extends AsyncTask<String, Void, String> {
@Override
protected String doInBackground(String... urls) {
String test_data = "111";
return POST(urls[0],test_data);
}
// onPostExecute displays the results of the AsyncTask.
@Override
protected void onPostExecute(String result) {
Toast.makeText(getBaseContext(), "Data Sent!", Toast.LENGTH_LONG).show();
}
}
public static String POST(String url, String data){
InputStream inputStream = null;
String result = "";
try {
HttpClient httpclient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost(url);
String json = "";
JSONObject jsonObject = new JSONObject();
jsonObject.accumulate("cross_id", data);
json = jsonObject.toString();
StringEntity se = new StringEntity(json);
httpPost.setEntity(se);
httpPost.setHeader("Accept", "application/json");
httpPost.setHeader("Content-type", "application/json");
HttpResponse httpResponse = httpclient.execute(httpPost);
inputStream = httpResponse.getEntity().getContent();
if(inputStream != null)
result = convertInputStreamToString(inputStream);
else
result = "Did not work!";
} catch (Exception e) {
Log.d("InputStream", e.getLocalizedMessage());
}
return result;
}
网址:
我知道我必须从request.body读取数据,但该方法根本没有启动
非常感谢。有什么错误?@arcegk问题是我的服务器没有收到帖子。我没有收到错误消息或任何其他信息。android应用程序告诉我数据正在发送,但服务器没有接收!
def inventory(request):
# Just write something on a file to know the method is being fired or not
if request.method == 'POST':
# Try to parse the cross_id from the POST
url(r'^inventory', views.inventory, name='inventory')