HTTP Download - Skript im Weg

  • Themenstarter Themenstarter Dr_Cox1911
  • Beginndatum Beginndatum
D

Dr_Cox1911

Gast
Greetings,

komme gerade nicht weiter und würde eure Hilfe benötigen.
Es geht um folgendes:

Ich möchte eine Datei per Java downloaden, nur leider ist die Datei nicht direkt ansprechbar sondern "nur" über einen Link, der wie folgt aussieht (ist ein kleiner Download-Link, von mir erstellt):
http://projectzomboid.de/pzmodsHomepage/index.php?page=DownloadDBFileDownload&dataID=1

Die wirklich Seite mit den "echten" Downloads gehört einem Partner von mir, der die ganze Web-Geschichte leitet. Eine Umstellung des Downloadsystems möchten wir nur ungern vornehmen.

Also wie genau lade ich solche Dateien runter?
 
Naja, du hast doch da den Link zum Download? Ruf die Seite auf und speichere die Daten auf die Festplatte. Oder wo ist das Problem?
 
Das Problem ist, dass ich nicht weiß wie. Normal hole ich Dateien so:
Java:
	        server = new URL({Link zur Datei, aber direkt zur Datei (also mit Endung)});
			con = server.openConnection();
			is = new BufferedInputStream(con.getInputStream());
			final OutputStream os = new BufferedOutputStream(new FileOutputStream({Speicherpfad}));
				
			byte[] chunk = new byte[1024];
			int chunkSize;  
			while ((chunkSize = is.read(chunk)) != -1) 
			{
			    os.write(chunk, 0, chunkSize);
			}
			os.flush(); // Necessary for Java < 6
			os.close();
			is.close();
Nur leider klappt das hier nicht, da die Datei ja nicht direkt ansprechbar ist.
 
Hast du den Code denn mal ausprobiert? 😉
Java:
        String pfad = "http://projectzomboid.de/pzmodsHomepage/index.php?page=DownloadDBFileDownload&dataID=1";
        String speicherPfad = "test.zip";
        
		URL server = new URL(pfad);
        URLConnection con = server.openConnection();
        BufferedInputStream is = new BufferedInputStream(con.getInputStream());
        final OutputStream os = new BufferedOutputStream(new FileOutputStream(speicherPfad));
            
        byte[] chunk = new byte[1024];
        int chunkSize;  
        while ((chunkSize = is.read(chunk)) != -1) 
        {
            os.write(chunk, 0, chunkSize);
        }
        os.flush(); // Necessary for Java < 6
        os.close();
        is.close();
Ob du die Datei direkt aufrufst, oder die Datei bei nem Request zurückgegeben wird ist doch total egal. Das Ergebnis ist, dass der Webserver dir die Datei rüberschickt.
 
Ähm, jetzt bin ich etwas baff. Hatte anscheinend bei meinem Test einen Typo im Link.
Es geht ja tatsächlich, entschuldigung für die Frage, kann denke ich geschlossen werden.

Nochmals danke für die Hilfe!
 

Neue Themen


Zurück
Oben