Bonjour,

Je cherche à récupérer un fichier généré par une page HTML d'un site.

Le formulaire du site est des plus simple:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
<form method=post>
blablabla...
<input type=button name="Apply" value="Apply" onClick="if (verifForm()) formSubmit(this.form,this)">
</form>
Outre les fonctions javascript de validation de formulaire, j'ai cette fonction là:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
function formSubmit(formulaire, boutonApply)
{
boutonApply.disabled = true
formulaire.submit()
}
La page se rappelle donc elle-même vu qu'il n'y a pas d'action.
Je n'ai bien évidemment pas le code source de cette page, autre que le code HTML généré..

Je voudrais donc envoyer mon formulaire en POST (ça c'est bon), mais je me retrouve avec le code source de la page HTML en réponse (avec mes boutons radio et autre en checked, comme quoi mes variables POST sont bien récupérées).
Je voudrais donc simuler un submit de cette page afin qu'elle me génère mon fichier..

Voici mon code (la première partie sert à s'authentifier et créer un cookie)

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
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#!/usr/bin/perl
 
use LWP::UserAgent;
$ua = LWP::UserAgent->new;
 
 
die ("Usage: $0 <n>\n")
        if ( !defined ($ARGV[0]) );
 
my $host = $ARGV[0];
my $nameFile = substr($host,4,8);
 
my $req = HTTP::Request->new(POST => "http://$host");
$req->content_type('application/x-www-form-urlencoded');
 
# On transmet le password de l'utilisateur pour simuler la connection
$req->content("SessionLoginForm=");
 
my $res = $ua->request($req);
my %headers = %{$res->headers};
print "$_: $headers{$_}\n" for keys %headers;
print "\n";
print $res->content;
print "\n";
print "\n";
 
$req = HTTP::Request->new(POST => "http://$host/http_eqt_file_upload.htm");
#                 [EqtFileIpServerForm => '10.1.80.24',
#                  Upload => '1',
#                  EqtFileUploadForm => "$nameFile.dat"]);
$req->content_type('application/x-www-form-urlencoded');
 
$req->content("EqtFileIpServerForm=10.1.80.24&Upload=1&EqtFileUploadForm=$nameFile.dat");
 
$res = $ua->request($req);
%headers = %{$res->headers};
print "$_: $headers{$_}\n" for keys %headers;
print "\n";
print $res->content;
print "\n";
Merci d'avance,