来自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

回到顶部