PB avec requête HTTP HEAD et GET

Le
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_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() ;

AK.
  • Partager ce contenu :
Vos réponses
Trier par : date / pertinence
Paul GABORIT
Le #141354
À (at) Mon, 6 Oct 2003 18:42:11 +0200,
"andrei kazkov"
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 - Perl en français - Remove '.OOO' from e-mail address - Supprimez '.OOO' de l'adresse e-mail

Denis -esp2008-
Le #141248
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

andrei kazkov
Le #141247
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.

Bruno Ethvignot
Le #141246
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

andrei kazkov
Le #141245
"Bruno Ethvignot" 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.


Poster une réponse
Anonyme