如何访问Android中的HttpURLConnection InputStream返回的HttpResponse?

时间:2017-12-14 20:50:40

标签: java android post inputstream httpurlconnection

我已采用this Stack Overflow answer中的代码将JSON从我的Android应用程序成功发布到Python / Django服务器。这是我(非常接近)改编的POST代码:

data

我现在想要访问服务器返回的HttpResponse,我认为它包含在data中(但我对此并不确定)。如果data确实包含HttpResponse,我想在Toast中打印它。

InputStream是否已包含来自服务器的HttpResponse,还是我需要采取其他步骤才能从Toast.makeText获取它?如果它已经存在,我应该在哪里放置data代码来打印Toast中的HttpResponse(即{{1}})?

1 个答案:

答案 0 :(得分:0)

变量data是一个String,其中包含来自服务器的响应正文,您可以在UI线程上使用方法result中的变量onPostExecute

有许多模式可以从异步任务中获取结果。这是一种简单的方法,尝试这种方法来祝酒。

按如下方式编写您的任务执行:

// In your activity's onCreate method
try {
    JSONObject obj = new JSONObject(strJSON);
    new postJSON() {

        @Override
        protected void onPostExecute(String result) {
            super.onPostExecute(result);
            Toast.makeText(getApplicationContext(), result, Toast.LENGTH_LONG).show();
        }

    }.execute("https://www.placeholder.com/generate_json", obj.toString());
} catch (Throwable t) {
    Log.e("JSON Error", "Could not parse malformed JSON: " + strJSON);
}