Как я могу получить ответное сообщение, возвращенное из моего представления DJANGO, и поместить его в текстовое представление?Большинство ответов говорят об использовании Httpresponse
, но, как я прочитал, это устарело.Я использую SDK v28.
Java-код в Android Studio:
private class HTTPAsyncTask_wdgt extends AsyncTask<String, Void, String> {
@Override
protected String doInBackground(String... urls) {
try {
try {
return HttpPost_wdgt(urls[0]);
} catch (JSONException e) {
e.printStackTrace();
return "Error!";
}
} catch (IOException e) {
return "Unable to retrieve web page. URL may be invalid.";
}
}
}
private String HttpPost_wdgt(String myUrl) throws IOException, JSONException {
URL url = new URL(myUrl);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setDoOutput(true);
conn.setRequestMethod("POST");
conn.setRequestProperty("Content-Type", "application/json; charset=utf-8");
JSONObject jsonObject = buildJsonObject_wdgt(); //Just takes some data from the app and returns JSON to be posted.
setPostRequestContent_wdgt(conn, jsonObject);
conn.connect();
return conn.getResponseMessage()+"";
}
private void setPostRequestContent_wdgt(HttpURLConnection conn,
JSONObject jsonObject) throws IOException {
OutputStream os = conn.getOutputStream();
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(os, "UTF-8"));
writer.write(jsonObject.toString());
writer.flush();
writer.close();
os.close();
}
Вид Django: (Прямо сейчас он просто возвращает 'mac' из опубликованного JSON)
@csrf_exempt
def req_exec(request):
ret = request.POST
data = json.loads(request.body)
return HttpResponse(data['mac'])