来自HTTP客户端的PUT请求后获得“ 411长度要求”
我正在研究实现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的情况下接受请求。如果客户端在请求消息中添加了包含消息主体长度的有效Content-
Length头字段,则客户端可以重复该请求。
因此,当您RequestBody
在POST / PUT方法中发送空内容时,还需要发送Content-
Length:0。因此,在您的请求中添加此标头。我认为此标头不会导致您将其添加到Request Object中的问题。
以上是 来自HTTP客户端的PUT请求后获得“ 411长度要求” 的全部内容, 来源链接: utcz.com/qa/398678.html