Ich versuche, einen Teil einer PDF-Datei herunterzuladen (nur zum Testen der "Range" -Kopfzeile). Ich habe den Server nach den Bytes (0-24) in Range gefragt, aber immer noch, anstatt die ersten 25 Bytes (einen Teil) aus dem Inhalt zu bekommen, bekomme ich den Inhalt voller Länge. Darüber hinaus kann anstelle der Antwortcode als 206 (Teilinhalt) bekommen, erhalte ich Antwortcode als 200Herunterladen eines Teils einer Datei mit HTTP-Anfragen
Hier mein Code ist:
public static void main(String a[]) {
try {
URL url = new URL("http://download.oracle.com/otn-pub/java/jdk/7u21-b11/jdk-7u21-windows-x64.exe?AuthParam=1372502269_599691fc0025a1f2da7723b644f44ece");
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
urlConnection.setRequestProperty("Range", "Bytes=0-24");
urlConnection.connect();
System.out.println("Respnse Code: " + urlConnection.getResponseCode());
System.out.println("Content-Length: " + urlConnection.getContentLengthLong());
InputStream inputStream = urlConnection.getInputStream();
long size = 0;
while(inputStream.read() != -1)
size++;
System.out.println("Downloaded Size: " + size);
}catch(MalformedURLException mue) {
mue.printStackTrace();
}catch(IOException ioe) {
ioe.printStackTrace();
}
}
Hier ist die Ausgabe:
Respnse Code: 200
Content-Length: 94973848
Downloaded Size: 94973848
Dank im Voraus.
Können Sie überprüfen, ob ein Programm, das im Bereich herunterladen können in der Tat ein downloadet Angebot? (Versuchen Sie, wget zu starten, Strg + C'ing, und starten Sie es erneut) Manche Server lehnen die Anfrage möglicherweise so ab, wie sie ist. – hexafraction