我正在开发一个实现 HTTP 客户端的 Java 程序。
我测试它向服务器发送请求。 GET、POST 和 DELETE 请求工作正常。
例如,在 POST 请求之后我得到一个输出
Data extracted:
{"status":{"message":"ok"}}
数据库反映所做的更改。
然而,在 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 标头有关,但我不确定。
尝试添加此标头后,我的程序等待一分钟,然后抛出异常,通知它无法处理服务器响应。
如果需要,我还可以提供任何代码或堆栈跟踪。
是的,该问题涉及Content-Length
。 HTTP 错误 411 的含义
服务器拒绝接受没有定义内容长度的请求。如果客户端在请求消息中添加了包含消息体长度的有效 Content-Length 头字段,则可以重复请求。
所以当你发送一个空的RequestBody
在 POST/PUT 方法中,那么您还需要发送Content-Length:0
。因此,请在您的请求中添加此标头。我不认为这个标头会导致您添加到请求对象中的问题。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)