J'ai cree le petit script ci-apres pour recuperer un fichier par une requete HTTP:
J'obtiens systematiquement la reponse ci-apres:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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'utilise wiresharc pour voir la difference entre mon script et un browser du commerce (Mozilla ou IE)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.
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
Partager