1. ホーム
  2. php

[解決済み] curl エラー 18 - 未処理の読み取りデータが残っている状態で転送が終了しました。

2023-07-28 16:37:02

質問

URLからcurlでデータを取得する際、時々(80%の確率で)以下のようなメッセージが表示されます。

error 18: 未読のデータが残っている状態で転送が終了しました。

そして、返されたデータの一部が欠落しています。奇妙なことに、CURLOPT_RETURNTRANSFER が false に設定されている場合、これは決して発生しません。つまり、curl_exec 関数はデータを返さず、コンテンツを直接表示します。

何が問題なのでしょうか。そのような動作を避けるために、いくつかのオプションを設定することができますか?

どのように解決するのですか?

これはきっと、間違った Content-Length ヘッダーに関連しているのでしょう。 私のアドバイスは、curlがそれ自身で長さを設定するようにすることです。