解碼「curl error 18」之謎:資料傳輸中遺失資料
當嘗試使用curl從URL檢索資料時,使用者可能會遇到令人困惑的「curl 錯誤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中文網其他相關文章!