Bonjour,
J'ai besoin de récupérer le contenu d'une page web. Voilà le code que j'utilise :
Jusque là aucun problème. Or, dans le cas d'un site multilingue, j'ai besoin de spécifier la variable HTTP_ACCEPT_LANGUAGE, variable utilisée habituellement par un navigateur pour éventuellement afficher la page dans une langue préférée.
Code : Sélectionner tout - Visualiser dans une fenêtre à part my $request = new HTTP::Request('GET', $url);
J'ai tenté plusieurs méthodes sans succès, à chaque fois le contenu m'est renvoyé en anglais, alors que lorsque j'affiche la page dans mon navigateur, le contenu est bien en français (langue préférée de mon navigateur).
Voilà mes tentatives :
;
Code : Sélectionner tout - Visualiser dans une fenêtre à part my $request = new HTTP::Request('GET', $url, ["HTTP_ACCEPT_LANGUAGE" => "fr"])
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 my $header = HTTP::Headers->new; $header->header('HTTP_ACCEPT_LANGUAGE' => 'fr'); my $request = new HTTP::Request('GET', $url, $header);Quelqu'un a-t-il une idée de la raison pour laquelle ces différentes méthodes ne fonctionnent pas ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 my $request = new HTTP::Request('GET', $url); my $headers = $request->headers(); $headers->header( 'HTTP_ACCEPT_LANGUAGE' => 'fr');
Pour info, voilà le contenu de la requête :
Merci.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 $VAR1 = bless( { '_content' => '', '_uri' => bless( do{\(my $o = 'mon_url_blablibla')}, 'URI::http' ), '_headers' => bless( { 'http-accept-language' => 'fr' }, 'HTTP::Headers' ), '_method' => 'GET' }, 'HTTP::Request' );
Partager