Sto provando a scaricare una parte di un file PDF (solo per testare l'intestazione "Range"). Ho richiesto il server per i byte (0-24) in Range ma, invece di ottenere i primi 25 byte (una parte) fuori dal contenuto, ricevo il contenuto a lunghezza intera. Inoltre, invece di ottenere il codice di risposta come 206 (contenuto parziale), mi sto codice di risposta da 200.Download di una parte di un file tramite richieste HTTP
Ecco il mio codice:
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();
}
}
ecco l'output:
Respnse Code: 200
Content-Length: 94973848
Downloaded Size: 94973848
Grazie in anticipo.
è possibile verificare che un programma in grado di scaricare le gamme effettivamente scaricare un gamma? (prova ad avviare wget, Ctrl + Cingolo e avviarlo di nuovo) Alcuni server potrebbero rifiutare la richiesta così com'è. – hexafraction