「curl error 18」エニグマの解読: データ転送におけるデータの欠落
curl を使用して URL からデータを取得しようとすると、ユーザーは「カール エラー 18: 未処理の読み取りデータが残っているため転送が終了しました。」という複雑なエラーが発生する可能性があります。このエラーは、予期されたデータの一部が欠落していることを示します。興味深いことに、この問題は、CURLOPT_RETURNTRANSFER が false に設定されている場合に消えます。これは、データがcurl_exec によって返されるのではなく、直接表示されることを示します。
犯人の解明
エラー メッセージlibcurl が観察した内容を正確に反映します。 libcurl は、チャンク化されたエンコード ストリームを受信すると、受信したチャンク内で不完全なデータを検出します。接続が終了すると、libcurl は最後に受信したチャンクが不完全であることを認識し、このエラー コードをトリガーします。
デコード ソリューション
ただし、このエラーを排除する直接的な解決策はありません。現在のリクエスト構成では、HTTP 1.0 リクエストを発行することが回避策となります。チャンクエンコーディングは HTTP 1.0 リクエストでは採用されていません。ただし、このエラーは、根本的なサーバーの誤動作またはネットワーク構成の問題を示している可能性があることに注意することが重要です。
以上が## 「curl Error 18: Transfer Closed with Outstanding Read Data Remaining」が表示されるのはなぜですか? どのように修正すればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。