zoukankan      html  css  js  c++  java
  • 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 下载结果正确
  • 相关阅读:
    for是个什么玩意
    面向对象 多态
    面向对象 接口
    面向对象oop
    面向对象基本
    java修饰符的作用范围
    static 关键字介绍
    JsonLayout log4j2 json格式输出日志
    多线程--Thread.join方法
    idea常用实用快捷键
  • 原文地址:https://www.cnblogs.com/coderdxj/p/11629802.html
Copyright © 2011-2022 走看看