共計 1092 個字符,預計需要花費 3 分鐘才能閱讀完成。
在 Java 中,可以使用 Servlet 中的 HttpServletRequest
對象的 getInputStream()
方法來獲取請求的 body 原始數據。具體步驟如下:
- 獲取
HttpServletRequest
對象:
HttpServletRequest request = // 獲取 HttpServletRequest 對象
- 調用
getInputStream()
方法獲取輸入流:
InputStream inputStream = request.getInputStream();
- 從輸入流中讀取 body 原始數據:
byte[] bodyData = inputStream.readAllBytes();
注意:在 Java 9 及以上版本中,可以使用 inputStream.readAllBytes()
方法一次性讀取所有數據。如果使用的是 Java 8 或更早版本,可以使用 inputStream.read(byte[] b)
方法循環讀取數據。
以上代碼將 body 原始數據保存在 bodyData
字節數組中。你可以通過將字節數組轉換為字符串來對數據進行處理,例如:
String bodyString = new String(bodyData);
需要注意的是,獲取 body 原始數據的前提是請求的 Content-Type 必須是 application/x-www-form-urlencoded
或multipart/form-data
。如果 Content-Type 是 application/json
等其他類型,可以使用 getReader()
方法獲取請求的 body 數據。具體步驟如下:
- 獲取
HttpServletRequest
對象:
HttpServletRequest request = // 獲取 HttpServletRequest 對象
- 調用
getReader()
方法獲取BufferedReader
對象:
BufferedReader reader = request.getReader();
- 從
BufferedReader
中讀取 body 數據:
StringBuilder bodyBuilder = new StringBuilder();
String line;
while ((line = reader.readLine()) != null) {bodyBuilder.append(line);
}
String bodyString = bodyBuilder.toString();
在這種情況下,需要將讀取的每一行數據連接起來,最終將其轉換為字符串。
以上代碼將請求的 body 數據保存在 bodyString
字符串中。你可以根據實際情況進行處理和解析。
丸趣 TV 網 – 提供最優質的資源集合!
正文完
發表至: Java
2023-12-20