获取 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]的主要内容,如果未能解决你的问题,请参考以下文章

nodejs从POST请求中获取原始正文[重复]

正文未在“获取”POST请求和(我的)解决方案中发送[重复]

CORS:无法获取POST请求正文。

无法使用 Express.js 从请求中获取 POST 正文

如何在 AWS ELB 日志中获取完整的 POST 正文?

Google Cloud Functions 节点 JS - 来自客户端获取的 POST 请求,请求正文未通过 [重复]