Pardon, j'ai du mal m'exprimer.
Le server attend un fichier, que je doit moi, client, lui envoyer par POST (upload). Je dis juste que je connais le contenu du fichier, j'aimerai ne pas avoir à faire :
- ecriture du fichier
- ouvrir le fichier , recuperer le channel
- envoie des donnes
- fermer et destruction du fichier.
On peut (et c'est ce que le script du wiki est censé coder) enoyer le contenur du fichier dans les balises "Content-*".
L'idée de snipper la sortie perl est bonne, mais je n'ai jamais fait de perl : voici le script qui marche :
Pour le lancer, cree un fichier contenant trois lignes :
sydc_human
p13368
Q55c99
puis : perl script <fichier>
Ou je serai super content si tu/quelqu'un pouvait m'expliquer comment snipper le traffic ?
Merci !!
use strict;
use warnings;
use LWP::UserAgent;
my $list = $ARGV[0]; # File containg list of UniProt identifiers.
my $base = '
http://www.uniprot.org';
my $tool = 'batch';
my $agent = LWP::UserAgent->new;
push @{$agent->requests_redirectable}, 'POST';
my $response = $agent->post("$base/$tool/",
[ 'file' => [$list],
'format' => 'txt',
],
'Content_Type' => 'form-data');
while (my $wait = $response->header('Retry-After')) {
print STDERR "Waiting ($wait)...\n";
sleep $wait;
$response = $agent->get($response->base);
}
$response->is_success ?
print $response->content :
die 'Failed, got ' . $response->status_line .
' for ' . $response->request->uri . "\n";