网上有很多restTemplate上传图片的例子,但是我遇到的坑,却没有解决办法,于是在墙外面找到了解决方案,现分享如下

上送给微信的请求报文必须如上(事实证明少一个filename微信都提示你file不能为空)这个提示误导两个小时排查问题

代码摘要如下:

private ResultModel httpRequestWechatUploadImage(String url,String head,String body,String imageUrl,String imageName){try{//构造请求头HttpHeaders headers = new HttpHeaders();headers.add("Authorization", head);headers.setContentType(MediaType.MULTIPART_FORM_DATA);ResponseEntity<String> responseEntity;//构建第一个boundaryHttpHeaders metaHeader = new HttpHeaders();metaHeader.setContentType(MediaType.APPLICATION_JSON);HttpEntity<String> jsonHttpEntity = new HttpEntity<>(body, metaHeader);//构建第二个boundaryHttpHeaders pictureHeader = new HttpHeaders();pictureHeader.setContentType(MediaType.IMAGE_JPEG);//不设置此contentDisposition则会报file必填pictureHeader.setContentDispositionFormData("file",imageName);ByteArrayResource bar = new ByteArrayResource(CommonUtils.getByteFromURL(imageUrl));HttpEntity<ByteArrayResource> picturePart = new HttpEntity<>(bar, pictureHeader);//组成bodyMultiValueMap<String, Object> multipartRequest = new LinkedMultiValueMap<>();multipartRequest.add("meta", jsonHttpEntity);multipartRequest.add("file", picturePart);//放body 和 headHttpEntity entity = new HttpEntity(multipartRequest, headers);//请求微信responseEntity = restTemplate().exchange(url,HttpMethod.POST,entity,String.class);if(responseEntity.getStatusCode() == HttpStatus.OK){return new ResultModel(true, responseEntity.getBody());}else{return new ResultModel(false, responseEntity.toString());}} catch(RestClientResponseException ex){System.out.println("rest client exception,body"+ex.getResponseBodyAsString());ex.printStackTrace();return new ResultModel(false,ex.getResponseBodyAsString());} catch (Exception e){System.out.println("exception "+e.getMessage());e.printStackTrace();}return new ResultModel(false,"request wechat system error");}

使用restTemplate上传图片相关推荐

  1. RestTemplate上传图片

    今天用RestTemplate上传图片,在这里分享下. 同事定义的接收类型为MultipartFile,这是spring的对文件上传的一个组件. 我现在做的是跟以前的系统对接,图片上传之后使用BASE ...

  2. RestTemplate上传图片到指定接口

    1.将图片上传到服务器,我是用spring的restTemplate工具类 @RequestMapping("/upload")public Map<String, Obje ...

  3. 微信公众号开发使用weui上传图片

    先说一下遇到的问题, 1.刚开始在开发阶段直接前台用ajax调接口上传图片没问题,可是到了正式服务器部署时,问题出现了.好像是无法跨域(可能是服务器域名化了的原因),但是后台接口方法中已经添加了允许跨 ...

  4. restTemplate http请求报错:no suitable HttpMessageConverter found for response type and content type

    报错信息: org.springframework.web.client.UnknownContentTypeException: Could not extract response: no sui ...

  5. SpringCloud Alibaba微服务实战(二) - Nacos服务注册与restTemplate消费

    说在前面 基础环境搭建,理论,请看上一篇,在这就不扯理论了,直接上代码. 项目结构 代码实现 第一步:在父pom的项目中引入dependencyManagement 在引入父pom之前咱们先来回顾下d ...

  6. 运行一段时间后,RestTemplate请求报400错误

    问题描述 本地调用远端接口无误,部署到服务器上调用刚开始也无误,随着时间的推移,调用次数的增加,再次调用时报 400 Bad Request 错误. 问题代码 private String sendR ...

  7. Http请求之优雅的RestTemplate

    前言 本篇博客为对RestTemplate总结 HttpURLConnection 在讲RestTemplate之前我们来看看再没有RestTemplate之前是怎么发送http请求的. privat ...

  8. Django 上传图片和Admin站点5.2

    上传图片 当Django在处理文件上传的时候,文件数据被保存在request.FILES FILES中的每个键为<input type="file" name="& ...

  9. tp5+linux+apache php7.1.30环境下,上传图片报错:mkdir():permission denied

    做了个自己的博客,后台上传图片的时候报错如图: 首先反应是权限问题,runtime和uploads文件夹已经给了777权限了,超出菜鸟的解决范围,果断百度,但是百度了一堆,全部是关于runtime的, ...

最新文章

  1. varnish缓存的配置优化(redhat5.4)
  2. xpath元素和css选择器的定位
  3. VTK修炼之道46:图形基本操作进阶_三角网格体积、表面积、测地距离、包围盒
  4. 嵌入式linux设计师,make在linux——《嵌入式linux设计与应用》
  5. iOS-各种动画特效
  6. 文字转换为音频mp3的方法
  7. static与final关键字
  8. WIN7护眼颜色设置
  9. 心理账户、沉没成本、比例偏见
  10. stm32 I2C总线入门笔记
  11. 别墅家庭无线WiFi覆盖解决方案
  12. 魔方cfop公式软件_【初级篇】(八)最简单的三阶魔方入门教程——顶棱还原...
  13. [死磕 Spring 21/43] --- IOC 之 Factory 实例化 bean
  14. WEB介绍(beego)
  15. Synchronized 用法总结
  16. 我的RUST学习——【第九章 9-1】panic! 与不可恢复的错误
  17. 幽默感七个技巧_如何让自己变得幽默-16个聊天幽默技巧
  18. lumen时间不准确,少8个小时
  19. 【数据结构】栈的实现(C语言)
  20. 嵌入式开发学习之--RCC(上)

热门文章

  1. Python调用WPS API
  2. 01、【正点原子】sys.c、sys.h位带操作的简单应用
  3. 小白理解k-svd算法
  4. Yoshua Bengio 、吴恩达等预见2022年人工智能趋势
  5. 【数字IC手撕代码】Verilog偶数分频|题目|原理|设计|仿真(二分频,四分频,六分频,八分频,偶数分频及特殊占空比)
  6. Apple Car将提前“出世”,华为、百度准备好了吗?
  7. oracle cpu基线,Oracle SQL执行计划基线总结(SQL Plan Baseline)
  8. 什么是root?我来告诉你为什么它叫root
  9. 三、以太网协议栈uIP移植
  10. 到底什么是“被动收入”?