RestTemplate 超级严重BUG之 restTemplate.getForEntity对于下载文件的地址请求 header不起作用

错误下载:RestTemplate restTemplate=new RestTemplate();HttpHeaders httpHeaders=new HttpHeaders();httpHeaders.set(HttpHeaders.RANGE,"bytes=" + 0 + "-" + 10);org.springframework.http.HttpEntity<byte[]> httpEntity=new org.springframework.http.HttpEntity<>(httpHeaders);ResponseEntity<byte[]> resp = restTemplate.getForEntity("http://b-ssl.duitang.com/uploads/item/201804/29/20180429134705_yk5mz.jpeg", byte[].class,httpEntity);System.out.println(Thread.currentThread().getName()+":"+resp.getBody().length);资源总共:1078729byte 希望下载11byte 结果下载结果为1078729byte  结论:header设置没有起作用

正确下载:

RestTemplate restTemplate=new RestTemplate();HttpHeaders httpHeaders=new HttpHeaders();httpHeaders.set(HttpHeaders.RANGE,"bytes=" + 0 + "-" + 10);org.springframework.http.HttpEntity<byte[]> httpEntity=new org.springframework.http.HttpEntity<>(httpHeaders);ResponseEntity<byte[]> rsp = restTemplate.exchange("http://b-ssl.duitang.com/uploads/item/201804/29/20180429134705_yk5mz.jpeg", HttpMethod.GET, httpEntity, byte[].class);System.out.println(Thread.currentThread().getName()+":"+rsp.getBody().length);

橙色为唯一不同代码:把getForEntity 换为了exchage 下载结果正确

原文地址:https://www.cnblogs.com/coderdxj/p/11629802.html

时间: 2024-10-20 03:17:44

RestTemplate 超级严重BUG之 restTemplate.getForEntity对于下载文件的地址请求 header不起作用的相关文章

springboot项目下载文件功能中-切面-导致的下载文件失败的bug

背景:使用spring提供的 ResponseEntity 和Resource结合,实现的下载文件功能 bug:Resource已经加载到了文件, 并且通过 ResponseEntity 构建了响应,但是页面接收不到文件. 原因:目前初步发现是因为我使用的捕获异常的切面导致的,具体切面怎么会导致 响应结构 的改变,暂时没有搞明白,后续研究透了再补充 解决办法:把下载文件的接口排除在切面处理的范围外,就好了. 吃一堑长一智:浪费了差不多一天的时间在这个问题上,很苦恼,希望下次能使用排除法,更高效的

怎样在超级终端和PC之间通过串口传输文件

Windows环境下,通过SecureCRT软件,用串口向ARM开发板发送文件: 输入命令 rz,可以看到如下图所示: 选择路径点击上传即可. 如果是想从Arm开发板中把文件Down下来,则可以按照下图所示的方法来做: 首先点击 选项-会话选项,然后选中红色笔圈住的地方,可以看到有上传和下载的目录设置. 设置好以后,在超级终端输入命令: sz XXX(你的文件名),就可以看到终端里显示下载进度了,完成100%后, 你就可以在你设置好的路径里找到下载好的东西了.

java里面的文件上传与下载

文件的上传与下载主要用到两种方法:1.方法一:commons-fileupload.jar commons-io.jarapache的commons-fileupload实现文件上传,下载 [upload]package com.handson.bbs.servlet; import java.io.File;import java.io.IOException;import java.util.Date;import java.util.List;import javax.servlet.Se

Bmob 开发Android程序快速入门--小demo

注册Bmob帐号 在网址栏输入www.bmob.cn或者在百度输入Bmob进行搜索,打开Bmob官网后,点击右上角的“注册”,在跳转页面填入你的姓名.邮箱.设置密码,确认后到你的邮箱激活Bmob账户,你就可以用Bmob轻松开发应用了. 网站后台创建应用 登录账号进入bmob后台后,点击后台界面左上角“创建应用”,在弹出框输入你应用的名称,然后确认,你就拥有了一个等待开发的应用. 获取应用密钥和下载SDK 选择你要开发的应用,点击该应用下方对应的“应用密钥” 在跳转页面,获取Application

fiddler界面详解(转自:子信风蓝蓝)

原文地址:http://www.cnblogs.com/chengchengla1990/p/5681775.html Statistics 页签 完整页签如下图: Statistics 页签显示当前用户选择的 Sessions 的汇总信息,包括:选择的 Sessions 总数.发送字节数.接收字节数.响应类型的汇总表.世界各地通过不同请求方式所需的时间等. Statistics 页签底部图表 Show Chart 可以将汇总结果显示为一个饼状图,按照响应类型,在饼图中显示不同的比例和不同的色块

Spring MVC 4实现RESTFul WebServices的CRUD实例和使用RestTemplate进行请求(全注解形式配置Web和Filter)

在这篇文章中,我们将使用Spring4 MVC编写一个CRUD RESTful Web服务,写一个REST客户端RestTemplate来使用这些服务.我们也将利用外部客户端测试的服务. 下面将展示核心代码,更详细的代码实现参照Maven示例工程! 简单介绍REST REST表示状态传输.这是一个体系结构样式,可用于设计网络服务,可以被各种客户端消耗.核心思想是,不使用如CORBA,RPC或SOAP复杂的机制在机器之间进行连接,简单的 HTTP 用于使它们之间调用. 在基于 REST 的设计中,

笔记:Spring Cloud Ribbon RestTemplate 详解

详细介绍RestTemplate 针对几种不同请求类型和参数类型的服务调用实现,示例代码中的 restTemplate 都是通过Spring 注入方式创建的,相关代码如下: @Autowired private RestTemplate restTemplate; ? ? 在应用主类需要增加 Bean,代码如下: @LoadBalanced @Bean public RestTemplate createRestTemplate(){ ????????return new RestTemplat

Spring RestTemplate: 比httpClient更优雅的Restful URL访问

{ "Author": "tomcat and jerry", "url":"http://www.cnblogs.com/tomcatandjerry/p/5899722.html" } Spring RestTemplate, 使用java访问URL更加优雅,更加方便. 核心代码: String url = "http://localhost:8080/json"; JSONObject json =

Springboot 使用 RestTemplate

每天学习一点点 编程PDF电子书.视频教程免费下载:http://www.shitanlife.com/code spring web 项目提供的RestTemplate,使java访问url更方便,更优雅. 它是spring提供的异步的客户端http访问的核心class,它提供非常简单的RESTful方式与http server端进行数据交互,根据所提动的URLs进行http访问,并处理返回结果.它是基于JDK HTTP connection建立的.因此他可以使用不同的HTTP库(apache