Я изучаю java.net.http api , пытаясь загрузить файл с заданным диапазоном загруженных байтов. Для этого может быть использован заголовок range
(если сервер поддерживает такую функцию).
Используя org.apache.http.client.methods.HttpGet
Я могу сделать это:
HttpGet httpGet= new HttpGet("http://exampleURL.com/aFile");
if (myFile.length() > 0) {
httpGet.addHeader("Range", "bytes=" + myFile.length() + "-"+totalBytes));
}
httpGet.addHeader("xxxx", "yyyy");//ok
Теперь с HttpRequest я не могудинамически добавлять новые заголовки, я должен создать новый целый HttpRequest:
HttpRequest request = null;
if (myFile.length() > 0) {
request = HttpRequest.newBuilder()
.uri(URI.create("http://exampleURL.com/aFile"))
.header("Range","bytes="+myFile.length() +"-"+ totalBytes)
.build();
}else{
request = HttpRequest.newBuilder()
.uri(URI.create("http://exampleURL.com/aFile"))
.build();
}
request.header("xxxx","yyyyy")//Can't do this anymore
Есть ли способ добавить их динамически?
Я вижу, что документы говорят:
После создания HttpRequest является неизменным и может отправляться несколько раз.
Но какой смысл быть неизменным? Что если мне нужно по какой-либо причине изменить заголовки?
Ссылка:
https://openjdk.java.net/groups/net/httpclient/intro.html