curl Expect:100-continue


curl Expect:100-continue
curl POSTデータを使用する場合、POSTのデータが1024バイトより大きい場合、curlは直接POST要求を開始しない.2つのステップに分かれます
1.サーバがデータを受け入れるかどうかを尋ねるExpect:100-continueを含むリクエストを送信します.
2.サーバから返された100-continue応答を受信してから、データPOSTをサーバに送信します.
これはlibcurlで定義されています.詳細については、次の説明を参照してください.http://www.w3.org/Protocols/rfc2616/rfc2616-sec8.html#sec8.2.3
すると問題が発生します.すべてのサーバが100-continueに応答するわけではありません.たとえばlighttpdでは、「417 Expectation Fail」が返され、論理エラーが発生します.
解決策としては,リクエスト送信時にヘッダに空のExpectが含まれる.
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Expect:"));