Bad Request avec PERL LWP
J'ai cree le petit script ci-apres pour recuperer un fichier par une requete HTTP:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| #!perl
use strict;
use LWP;
use LWP::ConnCache;
use LWP::Debug qw(+);
LWP::Debug::level('+');
&main();
sub main {
my $browser = new LWP::UserAgent;
my $cache = $browser->conn_cache(LWP::ConnCache->new( ));
$browser->conn_cache->total_capacity(undef);
my $url = "http://172.26.65.1/Vupload";
my $request = new HTTP::Request( GET => $url );
my $headers = $request->headers();
$headers->header( 'Accept-Encoding','gzip, deflate');
my $response = $browser->request($request);
if ($response->is_success) {
print $response->decoded_content;
}
else {
die $response->status_line;
}
} |
J'obtiens systematiquement la reponse ci-apres:
Citation:
LWP::UserAgent::new: ()
LWP::UserAgent::request: ()
LWP::UserAgent::send_request: GET
http://172.26.65.1/Vupload
LWP::UserAgent::_need_proxy: Not proxied
LWP::Protocol::http::request: ()
LWP::Protocol::collect: read 147 bytes
LWP::Protocol::collect: read 512 bytes
LWP::Protocol::collect: read 512 bytes
LWP::Protocol::collect: read 512 bytes
LWP::Protocol::collect: read 512 bytes
LWP::Protocol::collect: read 512 bytes
LWP::Protocol::collect: read 512 bytes
LWP::Protocol::collect: read 512 bytes
LWP::Protocol::collect: read 512 bytes
LWP::Protocol::collect: read 512 bytes
LWP::Protocol::collect: read 180 bytes
LWP::UserAgent::request: Simple response: Bad Request
400 Bad Request at test.pl line 22.
J'utilise wiresharc pour voir la difference entre mon script et un browser du commerce (Mozilla ou IE)
Voila la seule difference que je vois dans la requete:
TE: deflate,gzip;q=0.3
et
Connection: Keep-Alive, TE
au lieu de
Connection: Keep-Alive
Qui peut me dire si je suis sur la bonne piste et comment enlever ce TE.
Je suppose que le client ne supporte pas le transfert-encoding.
Merci