Jetty 9客户端设置Content-Range值无法正常工作

问题描述 投票:0回答:1

我正在使用Jetty 9.4 HttpClient尝试重新启动大文件下载。我正在使用Jetty 9.4服务器。

    final InputStreamResponseListener listener = new
     InputStreamResponseListener();  final Request request =
    httpClient.newRequest(urlString);  if (range > 0) {
                // This does not work
                **request.param("Range", "bytes=" + file.length() + "-");**
                // This does not work
                **request.param("Content-Range", "bytes " + file.length() + "-");**  }

       request.scheme(getUriScheme(urlString)).method(HttpMethod.GET).version(HttpVersion.HTTP_1_1).send(listener);
 final Response response = listener.get(getHttpConnTimeout(), TimeUnit.SECONDS);

 // Get content length from response header
 contentLength = response.getHeaders().getField(HttpHeader.CONTENT_LENGTH).getLongValue();
 if (response.getStatus() == HttpStatus.OK_200) {
            return listener.getInputStream();
 }

但是,当我使用Java的实现时,一切正常(意味着不使用Jetty 9 HttpClient)

 if (httpURLConnection != null) { 
     // This works              
     httpURLConnection.setRequestProperty("Range", "bytes=" + file.length() + "-");
 }
 if (httpsURLConnection != null) {
     // This works
     httpsURLConnection.setRequestProperty("Range", "bytes=" + file.length() + "-");
 }

我做错了什么?有人有可行的例子吗?

java http jetty
1个回答
0
投票

是(AFAIU)“ header()”,而不是“ param()”。

而且,“内容范围”不属于请求

© www.soinside.com 2019 - 2024. All rights reserved.