Próbuję pobrać część pliku PDF (tylko do testowania nagłówka "Zakres"). Poprosiłem serwer o bajty (0-24) w zakresie, ale nadal, zamiast otrzymywać pierwsze 25 bajtów (część) z treści, otrzymuję pełną treść. Co więcej, zamiast się kod odpowiedzi jako 206 (częściowe Content), dostaję kodu odpowiedzi jako 200.Pobieranie części pliku za pomocą żądań HTTP
Oto mój kod:
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();
}
}
Oto wynik:
Respnse Code: 200
Content-Length: 94973848
Downloaded Size: 94973848
Dzięki z góry.
można sprawdzić, czy program, który można pobrać zakresy rzeczywiście pobrać zasięg? (spróbuj uruchomić wget, Ctrl + C'ing i ponownie go uruchomić) Niektóre serwery mogą odrzucić żądanie tak jak jest. – hexafraction