0
バッファ付きのリーダーライタとストリームメソッドを使用せずにコードを修正しようとしています。誰も私のコードを簡素化する方法を私に示唆することができます。リクエストペイロードを残してapi javaストリームのリーダとライタなしでコードを変更します
私はキュウリでこのコードを実行していて、正常に動作しています。
public String creatProduct() throws Throwable {
String payload = "{"
+ "\"productName\":\"Macroon\","
+ "\"productCode\":\"\","
+ "\"externalRoomId\":\"\","
+ "\"description\":\"\""
+ "}";
String requestUrl = "www.example.com";
try {
URL url = new URL(requestUrl);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setDoInput(true);
connection.setDoOutput(true);
connection.setRequestMethod("POST");
connection.setRequestProperty("Accept", "application/json");
connection.setRequestProperty("Content-Type", "application/json; charset=UTF-8");
OutputStreamWriter writer = new OutputStreamWriter(connection.getOutputStream(), "UTF-8");
writer.write(payload);
writer.close();
BufferedReader br = new BufferedReader(new InputStreamReader(connection.getInputStream()));
String line;
while ((line = br.readLine()) != null) {
jsonString.append(line);
}
br.close();
connection.disconnect();
System.out.println("Response==>" + jsonString.toString());
Map<String, String> map = new HashMap<String, String>();
ObjectMapper mapper = new ObjectMapper();
System.out.println("Input payload:" + payload);
map = mapper.readValue(jsonString.toString(), new TypeReference<HashMap<String, String>>() {
});
System.out.println("Output Map: " + map);
map.get("productName");
assertEquals("Macroon", map.get("productName"));
} catch (Exception e) {
throw new RuntimeException(e.getMessage());
}
return jsonString.toString();
}