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


  [{“ field”:“ login”,“ message”:“ Login \” loooogin \“已经
  采取。“}]


我以为也许我可以阅读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())
    }
);

07-28 07:15