Hi
Found the answer: when building the HttpAsyncClient set a redirect strategy and
add the appropriate header:
HttpAsyncClientBuilder builder = HttpAsyncClients.custom();
builder.setRedirectStrategy(new DefaultRedirectStrategy() {
@Override
public HttpUriRequest getRedirect(HttpRequest request, HttpResponse
response, HttpContext context) throws ProtocolException {
HttpUriRequest redirectRequest = super.getRedirect(request,
response, context);
// copy “Range" headers, if exist
Header[] rangeHeaders = request.getHeaders(“Range");
if (rangeHeaders != null) {
for (Header header : rangeHeaders) {
redirectRequest.addHeader(header);
}
}
return redirectRequest;
}
});
Thanks,
--
Yoram Dayagi (Gmail)
Sent with Airmail
On February 16, 2014 at 5:06:34 PM, Yoram Dayagi (Gmail) ([email protected])
wrote:
Hi
I’m using HttpAsyncClient to execute an async request.
I noticed that when requesting a GET request for a URL that redirects to
another, a header I put in the request ("Range: bytes=0-1000") is ignored and
all content is returned in the response.
Notes:
1. When accessing directly the redirected URL the execution is as expected
(only first 1000 bytes are returned)
2. The response of the original URL doesn’t contain a header "Accept-Ranges:
bytes”, where as the response of the redirected URL does contain this header.
How can I overcome this problem?
--
Yoram Dayagi (Gmail)
Sent with Airmail