Dateien herunterladen

| Drucken |

Ein kurzes Codestück, mit dem Ihr jegliche Art von Datei herunterladen könnt.

Ich werde zunächst eine ausführliche Variante erklären. Ganz unten findet Ihr eine super kurze Variante. :)

Wir machen dies einfacherweise als Methodenaufruf.

public static InputStream getInputStreamFromURL(String urlString)
Der Methode "getInputStreamFromURL()" übergeben wir einen String, der die URL zur Datei enthält.

InputStream in = null;
 int response = -1;
Wir definieren zunächst einen InputStream, der am Ende der Methode zurückgegeben wird. Außerdem eine response, um zu überprüfen, ob die URL zur Datei korrekt ist.

URL url;
 try {
 url = new URL(urlString);
 URLConnection conn = url.openConnection();
Wir erstellen ein URL Objekt, welchem wir den urlString übergeben, der den Link zur Datei enthält. Anschließend öffnen wir eine Verbindung zur URL.

if (!(conn instanceof HttpURLConnection))                     
 throw new IOException("Not an HTTP connection");
 
 HttpURLConnection httpConn = (HttpURLConnection) conn;
 httpConn.setAllowUserInteraction(false);
 httpConn.setInstanceFollowRedirects(true);
 httpConn.setRequestMethod("GET");
 httpConn.connect();
Wir überprüfen, ob die Verbindung existiert. Ansonsten wir eine Exception geworfen.
Anschließend erstellen wir ein HttpURLConnection Objekt und verbinden uns mittels HTTP-GET.

 response = httpConn.getResponseCode();                 
 if (response == HttpURLConnection.HTTP_OK)
 in = httpConn.getInputStream();                                 
 
Wir überprüfen, ob die Verbindung erfolgreich ist und laden die Datei in den Inputstream.

Diesen InputStream können wir anschließend weiter bearbeiten. Entweder speichern wir ihn bei Bildern in ein Bitmap, bei Texten in einen String oder parsen im Falle einer XML Datei. Das Parsen von XML-Dateien mit DOM und SAX Parser werde ich hier beschreiben.

Hier nochmals der Code als ganzes.

public static InputStream getInputStreamFromURL(String urlString){
 InputStream in = null;
 int response = -1;
 
 URL url;
 try {
 url = new URL(urlString);
 URLConnection conn = url.openConnection();
 
 if (!(conn instanceof HttpURLConnection))                     
 throw new IOException("Not an HTTP connection");
 
 HttpURLConnection httpConn = (HttpURLConnection) conn;
 httpConn.setAllowUserInteraction(false);
 httpConn.setInstanceFollowRedirects(true);
 httpConn.setRequestMethod("GET");
 httpConn.connect(); 
 
 response = httpConn.getResponseCode();                 
 if (response == HttpURLConnection.HTTP_OK)
 in = httpConn.getInputStream();                                                    
 
 } catch (MalformedURLException e) {
 // TODO Auto-generated catch block
 e.printStackTrace();
 } catch (IOException e) {
 // TODO Auto-generated catch block
 e.printStackTrace();
 } 
 return in;     
 }

 

Hier noch eine superkurze Variante mit "reduziertem" Errorhandling:

public static InputStream getInputStreamFromURL(String urlString){
 InputStream in = null;    
 URL url = null;
 
 try {
 url = new URL(urlString);
 in = url.openStream();
 } catch (MalformedURLException e1) {
 e1.printStackTrace();
 } catch (IOException e) {
 e.printStackTrace();
 }
 
 return in;
 }

 

Kommentare
Suche
Nur registrierte Benutzer können Kommentare schreiben!

3.26 Copyright (C) 2008 Compojoom.com / Copyright (C) 2007 Alain Georgette / Copyright (C) 2006 Frantisek Hliva. All rights reserved."

The secret of any online business is web hosting. Select the best hosting service reading offered by justhost.
Free Joomla Templates designed by Joomla Hosting