Jus*_*tin 42 php lighttpd curl
我们有一个用 PHP 构建的 RestFUL API。如果我们提出请求:
curl -u api-key:api-passphrase https://api.domain.com/v1/product -X POST
Run Code Online (Sandbox Code Playgroud)
我们回来:
411 - Length Required
Run Code Online (Sandbox Code Playgroud)
虽然如果我们简单地添加-d ""
到请求中,它可以工作并且没有 411 错误。有没有办法不需要在 curl 命令中添加 -d ?
我们正在使用 lighttpd 网络服务器,并且相信它的 lighttpd 不是 php 返回 411 错误。
Dav*_*rtz 62
你是对的—— lighttpd 不支持带有空消息体的 POST 请求,而没有将“Content-Length”标头设置为零,并且 CURL 发送这样的请求。关于谁是对的,争论不休,但在我看来,lighttpd 已经坏了。没有 Content-Length 和 Transfer-Encoding 的 POST 是完全合法的,并且没有消息体。
添加-d ""
会导致 CURL 发送Content-Length: 0
标头,从而解决了问题。
你可以修改 lighttp。找到发出 411 错误的代码,并将内容长度设置为零。
归档时间: |
|
查看次数: |
60661 次 |
最近记录: |