hallo Leute
Ich möchte von einem Perl-Skript aus über HTTP von einem Webserver binäre Daten runterladen. Im Prinzip geht es darum, dass das Startskript einer JAVA-Anwendung selbständig nach Patches suchen und diese downloaden soll. (nein, Webstart ist leider keine Option!).
Ich habe schon etwas mit den Modulen LWP::UserAgent, HTTP::Request::Common und HTTP::Headers herumgespielt und bin immerhin soweit, dass ich beliebige Textdateien downloaden kann.
Probleme habe ich allerdings mit binären Dateien, da scheinbar alle Bytes
$ua = LWP::UserAgent->new;
$req = GET „http://www.test.org/file.zip“
$ua->agent(‚Mozilla/4.0 (compativle; MSIE 5.0:wink:‘);
$req->header(‚Host‘ => „www.test.org“ );
$aw = $ua->request($req);
if ($aw->status_line =~ /200 OK/i) {
open (out,">file.zip") or die „unable to open file.zip for write“ ;
print OUT $aw->as_string ;
close OUT ;
}
zur Erklärung: den Code habe ich von einem anderen Skript abgetippt, der sich nur mit dem Download einer Textdatei beschäftigt. Mit Perl selbst arbeite ich immer wieder etwas, die HTTP-Module kenne ich aber noch nicht so gut.
Kann mir jemand einen Tipp/ein Beispiel liefern, wie man eine binäre Datei vom Intranet aus auf die Platte kopiert. Andere Tools wie wget o.ä. scheiden leider aus - muss entweder mit Perl oder mit Java klappen - und bei Java dauert das Initialisieren der VM in diesem speziellen Fall zu lange. Ich bin auch mit einem Link auf eine vernünftige Seite zufrieden, auf der die Perl-Module so erklärt werden, dass sich auch ein „Anfänger“ auskennt.
LG
Erwin