Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

PB avec requête HTTP HEAD et GET

5 réponses
Avatar
andrei kazkov
bonjour à tous,

j'ai un bout de code qui me pose pb, j'ai detecté le bug
avec l'url plus bas dans le code, alors que ce code a
toujours fonctionné. via un navigateur cette requête ne
cause aucun pb.

quelqu'un a une piste ?

# la requête suivante se passe bien code 200
my $url = "http://www.3w.fr/coaxis04.aspx?id_cat=111" ;
my $test = new HTTP::Request( 'HEAD', $url);
my $r_test = $USER_AGENT->request( $test ) ;
return 0 unless $r_test->is_success() ;
...
# si c'est du html
# la requête suivante se passe mal code 500
my $request = new HTTP::Request( 'GET', $url);
my $response = $USER_AGENT->request( $request ) ;
return 0 unless $response->is_success() ;

AK.

5 réponses

Avatar
Paul GABORIT
À (at) Mon, 6 Oct 2003 18:42:11 +0200,
"andrei kazkov" écrivait (wrote):
j'ai un bout de code qui me pose pb, j'ai detecté le bug
avec l'url plus bas dans le code, alors que ce code a
toujours fonctionné. via un navigateur cette requête ne
cause aucun pb.

quelqu'un a une piste ?

# la requête suivante se passe bien code 200
my $url = "http://www.3w.fr/coaxis04.aspx?id_cat1" ;
my $test = new HTTP::Request( 'HEAD', $url);
my $r_test = $USER_AGENT->request( $test ) ;
return 0 unless $r_test->is_success() ;
...
# si c'est du html
# la requête suivante se passe mal code 500
my $request = new HTTP::Request( 'GET', $url);
my $response = $USER_AGENT->request( $request ) ;
return 0 unless $response->is_success() ;


Code 500 (donc de la famille 5xx) = Erreur côté serveur.

Donc pas de problème de Perl ! ;-)

--
Paul Gaborit - <http://www.enstimac.fr/~gaborit/>
Perl en français - <http://www.enstimac.fr/Perl/>
Remove '.OOO' from e-mail address - Supprimez '.OOO' de l'adresse e-mail

Avatar
Denis -esp2008-
Bonjour,

# si c'est du html
# la requête suivante se passe mal code 500
Et quelle est l'erreur générée (fichier error_log oun error.log sous

apache)?

---
Denis

Avatar
andrei kazkov
Code 500 (donc de la famille 5xx) = Erreur côté serveur.

Donc pas de problème de Perl ! ;-)


d'accord, néanmoins les navigateurs n'ont pas cette erreur
en retour, ils affichent bien la page, il y a donc probablement
un problème dans la construction de la requête,
mais lequel ?

AK.

Avatar
Bruno Ethvignot
andrei kazkov wrote:
quelqu'un a une piste ?


Le code suivant fonctionne :

#!/usr/bin/perl
use strict;
use LWP::UserAgent ;
my $USER_AGENT =new LWP::UserAgent();
# faisons des hits pour Mozilla !! :-)
$USER_AGENT->agent ('Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.5)
Gecko/20030925');

my $url = "http://www.3w.fr/coaxis04.aspx?id_cat1" ;
my $test = new HTTP::Request('HEAD', $url);
$test->header ('Accept' => 'text/html');
my $r_test = $USER_AGENT->request( $test ) ;
print $r_test->is_success()."n";
print $r_test->code()."n";

# une pause arrange tout :-)
sleep 1;
my $request = new HTTP::Request('GET', $url);
$request->header ('Accept' => 'text/html');
my $response = $USER_AGENT->request( $request ) ;
print $response->is_success()."n" ;
print $response->code()."n";

En fait j'ai l'impression que le serveur n'aime pas que tu fasses
un HEAD suvit d'un GET trop rapidement... Si tu laisses uniquement
le GET sans le HEAD ca fonctionne, ou une petite pause d'une seconde
marche aussi. Par contre je suis incapable de t'expliquer pourquoi.
Une fonctionnalité avancé de IIS6 et ASP.NET sans aucun doute ;-)

A+
--
Bruno Ethvignot - *bruno* arrobe *tlk* point *fr*
http://mozilla.tlk.fr/contact.php
http://linux.tlk.fr/contact.php

Avatar
andrei kazkov
"Bruno Ethvignot" a écrit dans le message de
news: bls8e1$7tt$
andrei kazkov wrote:
quelqu'un a une piste ?


Le code suivant fonctionne :

#!/usr/bin/perl
use strict;
use LWP::UserAgent ;
my $USER_AGENT =new LWP::UserAgent();
# faisons des hits pour Mozilla !! :-)
$USER_AGENT->agent ('Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.5)
Gecko/20030925');

my $url = "http://www.3w.fr/coaxis04.aspx?id_cat1" ;
my $test = new HTTP::Request('HEAD', $url);
$test->header ('Accept' => 'text/html');
my $r_test = $USER_AGENT->request( $test ) ;
print $r_test->is_success()."n";
print $r_test->code()."n";

# une pause arrange tout :-)
sleep 1;
my $request = new HTTP::Request('GET', $url);
$request->header ('Accept' => 'text/html');
my $response = $USER_AGENT->request( $request ) ;
print $response->is_success()."n" ;
print $response->code()."n";

En fait j'ai l'impression que le serveur n'aime pas que tu fasses
un HEAD suvit d'un GET trop rapidement... Si tu laisses uniquement
le GET sans le HEAD ca fonctionne, ou une petite pause d'une seconde
marche aussi. Par contre je suis incapable de t'expliquer pourquoi.
Une fonctionnalité avancé de IIS6 et ASP.NET sans aucun doute ;-)

effectivement un sleep 1 règle le problème,

encore une des nombreuses fonctionnalités de IIS

merci

AK.