0

このリンクの回答に基づいてこの質問をしています

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 エラーが発生します。サーバー側でこれを処理する方法についての手がかりを期待しています。

4

2 に答える 2