このリンクの回答に基づいてこの質問をしています
JSON の RestTemplate を介した POST リクエスト
実際には、クライアントから JSON を送信し、REST サーバーで同じものを受信したかったのです。クライアント部分は上記のリンクで行われるため。同じように、サーバー側でそのリクエストをどのように処理しますか。
クライアント:
// create request body
JSONObject request = new JSONObject();
request.put("username", name);
request.put("password", password);
// set headers
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
HttpEntity<String> entity = new HttpEntity<String>(request.toString(), headers);
// send request and parse result
ResponseEntity<String> loginResponse = restTemplate
.exchange(urlString, HttpMethod.POST, entity, String.class);
if (loginResponse.getStatusCode() == HttpStatus.OK) {
JSONObject userJson = new JSONObject(loginResponse.getBody());
} else if (loginResponse.getStatusCode() == HttpStatus.UNAUTHORIZED) {
// nono... bad credentials
}
サーバ:
@RequestMapping(method=RequestMethod.POST, value = "/login")
public ResponseEntity<String> login(@RequestBody HttpEntity<String> entity) {
JSONObject jsonObject = new JSONObject(entity.getBody());
String username = jsonObject.getString("username");
return new ResponseEntity<>(username, HttpStatus.OK);
}
これにより、クライアント側で 400 Bad Request エラーが発生します。サーバー側でこれを処理する方法についての手がかりを期待しています。