2010-03-06 6 views
6

J'essaie d'utiliser PHP et cURL pour se connecter à un site Web (à savoir Craigslist). Lorsque j'accède au script, j'obtiens ce message d'avertissement:Pourquoi cet avertissement est-il affiché: "Problème reçu 2 dans l'analyseur syntaxique"?

Received problem 2 in the chunky parser 

Les recherches ont montré qu'il ne s'agit pas d'un problème associé à cURL. Je suis incapable de trouver la source du problème. Quelle peut être la raison?

Merci.

+1

Je ne peux pas m'en empêcher: Mettez l'analyseur au régime. – Erik

+0

@Erik c'était aussi ce que je pensais en premier. Il y a un certain nombre de parseurs et l'un d'eux est un peu lourd. Le message d'erreur utilise ce fait pour l'identifier - beaucoup plus agréable que "Parser 28" –

Répondre

5

Mise à jour: recherche sur Google pour le message d'erreur, je trouve aussi this:

Le message d'erreur se produit lorsque l'analyseur chunky boucle attend un corps de réponse HTTP Chunked et ne reçoit pas un. Votre réponse envoie l'en-tête Transfer-Encoding: chunked, donc curl s'attend à voir un corps tronqué selon RFC2616 et il n'en a pas.

De toute évidence, une redirection ne doit pas avoir un corps de réponse ou même l'en-tête Transfer-Encoding pour commencer. Vous pourriez essayer de surcharger l'en-tête, mais peut-être que CouchDB l'insère inconditionnellement auquel cas nous devrions le corriger, si vous trouvez que vous ne pouvez pas surcharger l'en-tête Transfer-Encoding, pouvez-vous produire un rapport de bogue? Cependant, je n'ai aucune idée de ce qu'il faut faire dans le contexte de la récupération d'une page arbitraire.

Original post:

Il y a un CouchDB Bug report portant sur la même question en conjonction avec des données multi-octets. Craigslist semble fonctionner dans ISO-8859-1, peut-être que l'annonce (ou ce que vous cherchez) contient des caractères UTF-8?

+0

J'ai mis 'Content-type: text/html; charset = utf-8' et ça marche bien. Merci pour la suggestion. – Circuits

+0

vous pouvez également faire easy.version = Curl :: HTTP_1_0 – Clark

1

"Problème 2 reçu dans l'analyseur syntaxique" est un message d'erreur de libcurl. Le "problème 2" spécifique fait référence à CHUNKE_ILLEGAL_HEX qui est un code d'erreur interne identifiant un flux codé en bloc illégal.

À peu près ce que la réponse de Pekka a déjà dit ...