当前位置: 首页 > news >正文

Java下载文件(特殊字符编码处理)

当你在这个问题上花费了数小时而解决不了,你才会知道这篇文章对你的帮助

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.io.Resource;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpMethod;
import org.springframework.http.ResponseEntity;
import org.springframework.util.StreamUtils;
import org.springframework.web.client.RestTemplate;
import org.springframework.web.util.UriComponentsBuilder;import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URI;public class Test {@AutowiredRestTemplate restTemplate;public void test(HttpServletResponse response) {String serverPrefix = "http://aa.com:8080";String filePath = "/testo1/test2/測武特殊字付@#&$%^~+[】・副本一副本・pom";HttpHeaders headers = new HttpHeaders();headers.add("Authorization", "Auth");URI uri = UriComponentsBuilder.fromHttpUrl(serverPrefix).pathSegment(filePath.split("/")).build().encode().toUri();ResponseEntity<Resource> responseEntity = restTemplate.exchange(uri, HttpMethod.GET, new HttpEntity<>(headers), Resource.class);if (responseEntity.getStatusCode().is2xxSuccessful() && responseEntity.hasBody()) {try (InputStream input = responseEntity.getBody().getInputStream();OutputStream output = response.getOutputStream()) {StreamUtils.copy(input, output);response.setContentLengthLong(responseEntity.getBody().contentLength());} catch (IOException e) {throw new RuntimeException("流传输异常", e);}} else {throw new RuntimeException("请求失败:" + responseEntity.getStatusCode());}}
}

相关文章:

  • iview Switch Tabs TabPane 使用提示Maximum call stack size exceeded堆栈溢出
  • 大模型如何革新用户价值、内容匹配与ROI预估
  • 大学课程:计算机科学与技术专业主要课程,是否落伍了?
  • 【计算机组成原理 第5版】白、戴编著 第六章 总线系统 课后题总结
  • 网络编程及原理(三)
  • JUnit​​ 和 ​​Mockito​​ 的详细说明及示例,涵盖核心概念、常用注解、测试场景和实战案例。
  • nprogress效果和网页进度不一致问题
  • 在Window上安装和配置VTK9.x,并在QT项目中调试VTK是否可用
  • Lrc歌词分析
  • 简单了解一下Hugging Face(抱抱脸)
  • C++中的右值引用与移动语义的理解
  • @Transactional注解失效的原因有哪些?
  • 如何对Video视频进行SEO优化?
  • OLED(SSD306)移植全解-基于IIC
  • Semaphore - 信号量
  • CPP基础
  • 西门子 S7-1200 PLC 海外远程运维技术方案
  • DAX权威指南8:DAX引擎与存储优化
  • 第七章:未名湖畔的樱花网关
  • 书籍推荐 --- 《筚路维艰:中国经济社会主义路径的五次选择》
  • 做动态网站学php_asp+还是jsp好?/实时新闻
  • 宜兴网站设计/百度指数里的资讯指数是什么
  • wordpress 站长统计/软文广告500字
  • 太原专业制作网站/推广计划
  • 高质量发展/网站优化推广公司
  • 网站建设 cms 下载/百度竞价推广专员