Java で送信された POST リクエストの本文を取得する方法は?
POSTリクエストのボディを取得するには、JAVA では Servlet またはSpringフレームワークを利用することが可能です。
- サーブレットを使用する
- Servlet 内の doPost メソッドをオーバーライドし、HttpServletRequest オブジェクトの getInputStream メソッドを使用してリクエストボディの入力ストリームを取得します。
- 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()即为请求体内容
}
- Springフレームワークを使用します。
- コントローラのメソッドにおけるパラメータに@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つの方法は上記の通りです。具体的なアプリケーションのシナリオやフレームワークに基づいて、自分に合った方法を選択してください。