Php

捲曲 POST - 需要 411 長度

  • September 27, 2011

我們有一個用 PHP 建構的 RestFUL API。如果我們提出請求:

curl -u api-key:api-passphrase https://api.domain.com/v1/product -X POST

我們回來:

411 - Length Required

雖然如果我們簡單地添加-d ""到請求中它可以工作並且沒有 411 錯誤。有沒有辦法不需要在 curl 命令中添加 -d ?

我們正在使用 lighttpd 網路伺服器,並且相信它的 lighttpd 而不是返回 411 錯誤的 php。

你是對的 - lighttpd 不支持帶有空消息正文且沒有將“Content-Length”標頭設置為零的 POST 請求,並且 CURL 會發送這樣的請求。關於誰是對的存在來回爭論,但在我看來,lighttpd 是壞的。沒有 Content-Length 和 Transfer-Encoding 的 POST 是完全合法的,並且沒有消息體。

添加-d ""會導致 CURL 發送Content-Length: 0標頭,從而解決問題。

你可以修改 lighttp。找到發出 411 錯誤的程式碼,並將內容長度設置為零。

引用自:https://serverfault.com/questions/315849