android - 如何从 Post 请求到 Android 上的 Rest API 获得响应

标签 android rest post request

我从 Android 向 Rest API 端点发送了一个发布请求,但我没有收到来自服务器的响应。 我需要得到这样的回应:

[{"field":"login","message":"Login \"loooogin\" has already been taken."}]

我想也许我可以阅读 STATUS 或 MSG 中的响应:

Log.i("STATUS", String.valueOf(conn.getResponseCode()));
                        Log.i("MSG" , conn.getResponseMessage());

但我的尝试没有产生结果。 Android中的代码:

public void createAccount(final String login, final String carNumber) {
        Thread thread = new Thread(new Runnable() {
            @Override
            public void run() {
                try {
                    URL url = new URL("url");
                    HttpURLConnection conn = (HttpURLConnection) url.openConnection();
                    conn.setRequestMethod("POST");
                    conn.setRequestProperty("Content-Type", "application/json;charset=UTF-8");
                    conn.setRequestProperty("Accept","application/json");
                    conn.setDoOutput(true);
                    conn.setDoInput(true);
                    JSONObject jsonParam = new JSONObject();
                    jsonParam.put("login", login);
                    jsonParam.put("carNumber", carNumber);
                    Log.i("JSON", jsonParam.toString());
                    DataOutputStream os = new DataOutputStream(conn.getOutputStream());
                    os.writeBytes(jsonParam.toString());
                    os.flush();
                    os.close();
                    Log.i("STATUS", String.valueOf(conn.getResponseCode()));
                    Log.i("MSG" , conn.getResponseMessage());
                    conn.disconnect();
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
        thread.start();
    }

最佳答案

如果你确实连接了Gson,你可能会写这样的东西,如果没有,用JSONArray替换JsonArray并执行get( ) 通过吸收 JSONArray 调用。

JsonArray array = new JsonArray(jsonParam.toString());
    array.forEach(item -> {
        Log.i("JSON", item.get("login").asString())
    }
);

关于android - 如何从 Post 请求到 Android 上的 Rest API 获得响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54562466/

相关文章:

android - 在 Genymotion 中测试需要 google play 服务的应用

java - Android TextView 在从右到左的设备上右对齐

用于错误报告的代码的 Android SQLite 转储数据库

rest - 我应该如何在 KAA 中实现 Rest API

PHP $_POST 在 IE9 和 IIS7 上为空

android - 在 Android 上使用 POST 发送登录信息!

android - 如何调用子 fragment 的 onResume() 而不是父 fragment 的 onResume()?

java - 如何在 ResponseEntity 中返回 CREATED 状态 (201 HTTP)

javascript - dijit.form.ComboBox 无法与 dojox.data.JsonRestStore 一起使用

api - 使用具有不完整表示的 PUT 方法