ホームページ >バックエンド開発 >PHPチュートリアル >Curl が「未処理の読み取りデータが残っているため転送が終了しました」(エラー 18) を返すのはなぜですか?その修正方法は何ですか?

Curl が「未処理の読み取りデータが残っているため転送が終了しました」(エラー 18) を返すのはなぜですか?その修正方法は何ですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-10-24 18:46:04700ブラウズ

Why Does Curl Return

エラー 18: Curl の「未処理の読み取りデータが残っているため転送が終了しました」について理解

curl を使用して URL からデータを取得すると、エラー 18: " が発生することがあります。未処理の読み取りデータが残ったまま転送が終了しました。」この不可解なエラーにより、応答からデータが欠落します。

原因: チャンク エンコーディング

このエラーは通常、チャンク エンコーディングを介してデータを取得するときに発生します。 Curl はサーバーからデータのチャンクを受信することを想定しています。この場合、すべてのチャンクが受信される前に接続が途中で閉じられ、データセットが不完全になります。

潜在的な原因

この問題は、サーバー側の問題、ネットワーク接続の問題、または両方の組み合わせ。サーバーはチャンク データを送信していますが、サーバーの誤動作またはネットワークの不安定により転送を完了できない可能性があります。

エラーの回避

リクエストを変更してこのエラーを直接軽減することはできませんが、次のことは可能です。次の回避策を試してください:

  • HTTP 1.1 リクエストの代わりに HTTP 1.0 リクエストを送信します。チャンク エンコーディングは HTTP 1.0 では使用されないため、問題が解決される可能性があります。

警告

この回避策は一時的なものである可能性があり、根本的な問題はサーバーまたはネットワークにある可能性があることに注意してください。設定。根本原因を解決するには、サーバーの管理者またはネットワークプロバイダーに相談してください。

以上がCurl が「未処理の読み取りデータが残っているため転送が終了しました」(エラー 18) を返すのはなぜですか?その修正方法は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。