Heim >Backend-Entwicklung >PHP-Tutorial >Warum erhalte ich „Curl-Fehler 18 – Übertragung geschlossen mit verbleibenden ausstehenden Lesedaten' und wie kann ich das beheben?
Beim Abrufen von Daten von einem Remote-Server über das Curl-Befehlszeilentool kann Folgendes auftreten: die Fehlermeldung „Curl-Fehler 18 – Übertragung geschlossen, es verbleiben noch ausstehende Lesedaten.“ Dieser Fehler weist darauf hin, dass ein Versuch, Daten von einer URL abzurufen, unterbrochen wurde, bevor die gesamte Antwort empfangen wurde, was zu teilweisen oder fehlenden Daten führte.
Dieser Fehler tritt normalerweise auf, wenn CURLOPT_RETURNTRANSFER auf „true“ gesetzt ist, was darauf hinweist, dass die Die Funktion „curl_exec“ sollte die von der URL abgerufenen Daten zurückgeben. Wenn Sie jedoch CURLOPT_RETURNTRANSFER deaktivieren, indem Sie es auf „false“ setzen, können die abgerufenen Daten direkt angezeigt werden, wodurch der Fehler vermieden wird.
Was verursacht den Fehler?
Dieser Fehler tritt auf aufgrund von die Verwendung von Chunked-Codierung in der HTTP-Antwort. Chunked-Codierung ermöglicht es einem Server, Daten in mehreren Blöcken zu senden, wobei jeder Block durch eine definierte Zeichenfolge abgeschlossen wird.
Wenn eine Verbindung geschlossen wird, bevor alle Blöcke empfangen wurden, erkennt libcurl, dass der zuletzt empfangene Block unvollständig war und generiert die Fehlermeldung.
Beheben des Problems
Es gibt zwei Möglichkeiten, dieses Problem zu beheben:
1. Chunked Encoding deaktivieren:
Sie können stattdessen versuchen, eine HTTP 1.0-Anfrage auszugeben, indem Sie dem Curl-Befehl die Option -0 hinzufügen. HTTP 1.0 verwendet keine Chunked-Codierung, daher kann dieser Workaround den Fehler beheben.
2. Überprüfen Sie die Server- und Netzwerkkonfiguration:
Der Fehler weist möglicherweise auf ein Problem mit dem Server oder der Netzwerkverbindung hin. Es wird empfohlen, Folgendes zu überprüfen:
Das obige ist der detaillierte Inhalt vonWarum erhalte ich „Curl-Fehler 18 – Übertragung geschlossen mit verbleibenden ausstehenden Lesedaten' und wie kann ich das beheben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!