0

Ich kann Daten über HttpUrlConnection und InputStream herunterladen, aber ich muss Rohdaten herunterladen. Also, ich möchte einen DownloadManager über Raw-Daten erstellen, dann verwende ich Raw-Daten, um diese Daten in Binär-oder Bildformat zu konvertieren. Nach meinen Recherchen sehe ich "Datei von URL herunterladen", aber ich kann keine Datei in Mac herunterladen? Immer bekomme ich FileNotFoundException. Bitte hilf mir. Wie kann ich Daten von der URL herunterladen?Wie lade ich Daten von der URL herunter?

public class DownloadData extends AsyncTask<Void,Void,Void> { 
@Override 
protected Void doInBackground(Void... params) { 

    try { 
     downloadData("https://blablalabla/get"); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
    return null; 
} 

public void downloadData(String myurl) throws IOException { 
    URL u = new URL(myurl); 
    InputStream is = u.openStream(); 

    DataInputStream dis = new DataInputStream(is); 

    byte[] buffer = new byte[1024]; 
    int length; 

    OutputStream fos = new FileOutputStream(new File(Environment.getExternalStorageDirectory() + "/Users/ilknurpc/Desktop/text.docx")); 
    while ((length = dis.read(buffer))>0) { 
     fos.write(buffer, 0, length); 
    } 


} 
} 
+0

Bitte zeigen Sie mindestens die relevanten Auszüge Ihres Codes. – Fang

Antwort

0

Wenn Sie einen bearbeitbaren Download-Manager konstruieren wollen, würde ich vorschlagen, dass Sie bei der Tomcat Default Servlet Implementation einen Blick darauf werfen.

Dort einige wenige HTTP-Header, die Sie verstehen müssen, wie E-Tags und Http Range Header für eine ordnungsgemäße Implementierung.

Zum Glück behandelt das Tomcat Default Servlet die Voraussetzungen für Sie.

Sie können dieses Servlet in Ihrem Code mit geringfügigen Änderungen anpassen (Paketdeklaration usw.).