Java で送信された POST リクエストの本文を取得する方法は?

POSTリクエストのボディを取得するには、JAVA では Servlet またはSpringフレームワークを利用することが可能です。

  1. サーブレットを使用する
  1. Servlet 内の doPost メソッドをオーバーライドし、HttpServletRequest オブジェクトの getInputStream メソッドを使用してリクエストボディの入力ストリームを取得します。
  2. IOストリームを使用して入力ストリームからデータを読み取ります。
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
BufferedReader reader = req.getReader();
StringBuilder requestBody = new StringBuilder();
String line;
while ((line = reader.readLine()) != null) {
requestBody.append(line);
}
// requestBody.toString()即为请求体内容
}
  1. Springフレームワークを使用します。
  1. コントローラのメソッドにおけるパラメータに@RequestBodyアノテーションを付与して、リクエスト本文の取得を行う
@PostMapping("/api")
public String handlePostRequest(@RequestBody String requestBody) {
// requestBody即为请求体内容
}

または、リクエストボディの内容を受け取るオブジェクトを使用する。

public class RequestBodyDto {
private String param1;
private int param2;
// getters and setters
}
@PostMapping("/api")
public String handlePostRequest(@RequestBody RequestBodyDto requestBodyDto) {
// requestBodyDto即为请求体内容的映射对象
}

POSTリクエストの本文を取得するための一般的な2つの方法は上記の通りです。具体的なアプリケーションのシナリオやフレームワークに基づいて、自分に合った方法を選択してください。

bannerAds