我正在尝试创建一种方法,该方法将发送给定 url 和 JSONArray 的 POST 请求。该代码的摘录如下:
URL url = new URL("https://jsonplaceholder.typicode.com/posts");
JSONObject obj = new JSONObject();
obj.put("id", -12);
obj.put("title", "titlevalue");
obj.put("body", "bodyvalue");
JSONArray arr = new JSONArray("[" + obj + "]");
con = (HttpURLConnection) url.openConnection();
con.setDoOutput(true);
con.setRequestMethod("POST");
con.setRequestProperty("Accept", "application/json");
con.setRequestProperty("charset", "utf-8");
System.out.println(arr.toString());
OutputStreamWriter wr= new OutputStreamWriter(con.getOutputStream(), "UTF-8");
wr.write(arr.toString());
wr.flush();
wr.close();
if (con.getResponseCode() != 201) // make sure request is successful
throw new Exception("Error code " + con.getResponseCode());
String str = new Scanner(con.getInputStream(), "UTF-8").useDelimiter("\\Z").next();
System.out.println(str);
第一个打印语句显示我的输入格式正确
[{
"id": -12,
"title": "titlevalue",
"body": "bodyvalue"
}]
这就是我想要的方式,但是在写入输出流后,第二个打印语句显示它根本没有正确格式化为 JSON,整个过程中都有奇怪的转义字符,并且它没有选择键/值对。
{
"[{\"id\":-12,\"title\":\"titlevalue\",\"body\":\"bodyvalue\"}]": "",
"id": 101
}
我在 POST 期间做错了什么吗?
富国沪深
暮色呼如
慕斯709654
相关分类