curl - 如何在命令行设置 Content-Length 标头?

jsc*_*sse 7 command-line curl

我正在使用curl 命令行工具。我做类似的事情

curl -XPUT "https://example.org?p1=value1&p2=value2" -H"Content-Type:application/x-www-form-urlencoded"

服务器回复

HTTP/1.1 411 Length Required

解决方案通常是设置适当的Content-Length标头。

但是这种情况下的 Content-Length 是多少以及如何使用curl 设置它?

jsc*_*sse 10

默认情况下,当数据与参数一起提供时,为您curl设置适当的标题。在您的情况下,服务器似乎在等待正文中的一些数据。但由于某种原因,您决定在 url 中传递数据。 Content-Length-d

1.简单的解决方案

添加-d""到命令中。这将导致curl将适当的长度设置为0。您还可以将适当的标头设置为-H"Content-Length:0"

2.为什么将数据作为查询参数传输?

尝试改为: curl -XPUT -d'p1=value1\np2=value2' https://example.org

  • 我正在写问题,但在写过程中找到了解决方案。所以我将答案与问题一起发布。https://stackoverflow.com/help/self-answer (8认同)
  • 您是否随口问了一个问题并在一分钟内回答了自己? (2认同)