Php
捲曲 POST - 需要 411 長度
我們有一個用 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 錯誤的程式碼,並將內容長度設置為零。