获取 POST 请求的正文 [Java]
Posted
技术标签:
【中文标题】获取 POST 请求的正文 [Java]【英文标题】:Get body of POST request [Java] 【发布时间】:2022-01-07 11:30:16 【问题描述】:我正在尝试编写一个简单的 HTTP 服务器,但不知道如何读取 POST 请求的正文段。我无法在标题后的空行之外阅读。
这是我的工作:
BufferedReader br = new BufferedReader(new InputStreamReader(client.getInputStream()));
StringBuilder request = new StringBuilder();
String line;
while(!(line = br.readLine()).isEmpty())
request.append(line).append(CRLF);
System.out.println(line);
// read body ?
所以这基本上将请求和标头加载到字符串中。但我不知道如何跳过将标题与正文分开的那一行。
我试过 readLine() != null 或在循环终止后手动读取两行,但这会导致循环。
【问题讨论】:
【参考方案1】:尝试解析 content-length 标头以获取字节数。在空白行之后,您将想要读取那么多字节。使用 readLine() 不起作用,因为正文没有被 CRLF 终止。
【讨论】:
以上是关于获取 POST 请求的正文 [Java]的主要内容,如果未能解决你的问题,请参考以下文章
正文未在“获取”POST请求和(我的)解决方案中发送[重复]
无法使用 Express.js 从请求中获取 POST 正文
Google Cloud Functions 节点 JS - 来自客户端获取的 POST 请求,请求正文未通过 [重复]