gpt4 book ai didi

java - 来自 HTTP 客户端的 PUT 请求后获取 "411 Length Required"

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:51:30 24 4
gpt4 key购买 nike

我正在开发一个实现 HTTP 客户端的 Java 程序。我测试它向服务器发送请求。 GET、POST 和 DELETE 请求工作正常。例如在一个 POST 请求之后我得到一个输出

Data extracted:
{"status":{"message":"ok"}}

并且数据库反射(reflect)了所做的更改。

在 PUT 请求之后,我得到以下指示错误的网页 html 标记。

Data extracted:
<html>
<head><title>411 Length Required</title></head>
<body bgcolor="white">
<center><h1>411 Length Required</h1></center>
<hr><center>nginx/1.2.6</center>
</body>
</html>

因此数据库中没有任何变化。

我发现这可能与 Content-Length header 有关,但我不确定。尝试添加此 header 后,我的程序等待一分钟,然后抛出异常,通知它无法处理服务器响应。

如果需要,我还可以提供任何代码或堆栈跟踪。

最佳答案

是的,与 Content-Length 有关的问题。 HTTP 错误 411 表示

The server refuses to accept the request without a defined Content- Length. The client MAY repeat the request if it adds a valid Content-Length header field containing the length of the message-body in the request message.

因此,当您在 POST/PUT 方法中发送一个空的 RequestBody 时,您还需要发送 Content-Length:0。因此,请在您的请求中添加此 header 。我不认为这个 header 会导致你添加到请求对象中的问题。

关于java - 来自 HTTP 客户端的 PUT 请求后获取 "411 Length Required",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15619562/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com