我从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())
}
);