2010-01-31 10 views
1

J'ai un projet qui utilise wxCurl pour récupérer un fichier sur HTTP. Cependant, si le serveur envoie un 301 ou un 302, tout ce que je récupère est une chaîne vide. J'ai entendu dire qu'il y avait un moyen pour que cURL suive l'emplacement: les en-têtes envoyés par le serveur. Comment cela est-il fait?Comment faire pour que wxCurl suive automatiquement les redirections?

De même, comment définir l'en-tête User-Agent dans wxCurl?

Répondre

0

Appelez mywxCurlHttpObject-> SetOpt (CURLOPT_FOLLOWLOCATION, 1);

qui définira correctement l'option libCurl sous-jacente.

Je ne sais pas l'agent utilisateur - vous auriez à établir que, dans l'en-tête libcURL, mais je ne vois pas un moyen de définir ceux qui l'enveloppe wxCURL

+0

Merci pour l'exemple, mais cela n'a pas fonctionné - quelques recherches approfondies dans la source n'ont rien révélé. J'ai finalement juste utilisé libCURL directement. –

0

Lorsque vous appelez wxCurlHTTP::Get() wxCurl overrites tous les paramètres que vous avez fait jusqu'à présent dans wxCurlBase::SetCurlHandleToDefaults() ...

dans votre wxCurlHTTP::Get() pouvez ajouter la ligne SetOpt(CURLOPT_FOLLOWLOCATION, 1); après la méthode appelle SetCurlHandleToDefaults() ou vous héritez juste la méthode dans une nouvelle classe et l'ajouter là.

Je l'ai essayé avec mon outil d'importation RSS écrit en wxWidgets & wxCurl. Ça a marché!

+0

Pour modifier l'agent utilisateur, ajoutez: SetOpt (CURLOPT_USERAGENT, "Mozilla/4.0 (compatible, MSIE 6.0, Windows NT 5.0)"); ou tout ce que vous voulez définir ... – DirkMausF

Questions connexes