Как получить и использовать HTTPResponse сообщение с сервера DJANGO - PullRequest
0 голосов
/ 08 февраля 2019

Как я могу получить ответное сообщение, возвращенное из моего представления 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'])

1 Ответ

0 голосов
/ 08 февраля 2019

Обычно я использую OKHttp для получения и обработки запросов, вот учебник Vogella , помогающий начать работу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...