2010-03-06 4 views
6

Ich versuche PHP und cURL zu verwenden, um mich auf einer Website anzumelden (nämlich Craigslist). Wenn das Skript zugreife, erhalte ich diese Warnmeldung:Warum wird diese Warnung angezeigt: "Problem 2 im Chunky Parser erhalten"?

Received problem 2 in the chunky parser 

Suchen zeigte, dass es kein Problem mit cURL zugeordnet ist. Ich kann die Ursache des Problems nicht finden. Was könnte der Grund sein?

Vielen Dank.

+1

Kann mir nicht helfen: Setzen Sie den Parser auf eine Diät. – Erik

+0

@Erik das war, was ich zuerst dachte. Es gibt eine Reihe von Parsern und einer von ihnen ist ein bisschen auf der schweren Seite. Die Fehlermeldung verwendet diese Tatsache, um es zu identifizieren - viel schöner als "Parser 28" –

Antwort

5

Update: für die Fehlermeldung googeln, finde ich auch this:

Der klobige-Parser-Fehlermeldung tritt auf, wenn curl eine Chunked HTTP Antwort erwartet und dann nicht ein bekommt. Ihre Antwort sendet die Transfer-Encoding: chunked Header, so erwartet Locke einen Körper Chunked nach RFC2616 zu sehen, und es bekommt nicht einen.

Offensichtlich sollte eine Weiterleitung keinen Antwortkörper oder sogar den Transfer-Encoding Header haben, mit zu beginnen. Sie könnten versuchen, den Header zu überschreiben, aber vielleicht fügt CouchDB ihn bedingungslos ein. In diesem Fall sollten wir das beheben. Wenn Sie herausfinden, dass Sie den Header Transfer-Encoding nicht überschreiben können, können Sie einen Fehlerbericht einreichen?

Ich habe keine Ahnung, was man im Zusammenhang mit dem Abruf einer beliebigen Seite daraus machen kann.

Original-Beitrag:

Es gibt ein CouchDB Bug report mit dem gleichen Problem in Verbindung mit Multi-Byte-Daten handelt. Craigslist scheint in ISO-8859-1 zu laufen, vielleicht hat die Anzeige (oder was auch immer Sie holen) UTF-8 Zeichen drin?

+0

Ich legte 'Content-type: text/html; charset = utf-8' und es funktioniert gut. Danke für den Vorschlag. – Circuits

+0

können Sie auch easy.version = Curl :: HTTP_1_0 – Clark

1

"Received Problem 2 im Chunky Parser" ist eine Fehlermeldung von libcurl. Das spezifische "Problem 2" bezieht sich auf CHUNKE_ILLEGAL_HEX, das ein interner Fehlercode ist, der einen illegalen chunked-codierten Strom identifiziert.

Ziemlich viel, was Pekka's Antwort bereits gesagt ...