如何使用RestTemplate上传超大文件呢?
下文笔者讲述RestTemplate上传大文件的方法分享,如下所示:
今天使用RestTemplate上传大文件时,出现以下错误 java.lang.OutOfMemoryError: Java heap space 出现此异常的原因: post大文件时,先缓冲请求正文内容,此时就会导致内存溢出 那么如何解决这个问题呢? 我们只需 requestFactory.setBufferRequestBody(false); 即可解决此类异常例:
---设置restTemplate @Bean public RestTemplate restTemplate() { SimpleClientHttpRequestFactory requestFactory = new SimpleClientHttpRequestFactory(); requestFactory.setBufferRequestBody(false); RestTemplate rest = new RestTemplate(requestFactory); return rest; } ---restTemplate使用 FileSystemResource resource = new FileSystemResource(new File(path)); HttpEntity<FileSystemResource> httpEntity = new HttpEntity<>(resource,headers); SimpleClientHttpRequestFactory requestFactory = new SimpleClientHttpRequestFactory(); requestFactory.setBufferRequestBody(false); RestTemplate rest = new RestTemplate(requestFactory); rest.put(upload_url, httpEntity);
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。