微信借口中获取素材的接口返回只是一个缓存的文件流 InputStream,

接口中请求永久图片素材返回的是 InputStream;

接口项目获取到 InputStream 可以直接通过文件流写到文件中(保存文件到weixin-java-mp 项目所在服务器上)

我做的公众号管理平台需要请求 weixin-java-mp 项目去下载素材文件,两个项目不在同一台服务器上,如何将weixin-java-mp项目中获取到的这个InputStream 传递到另一个项目中,获取到之后如何解析

解决方法:文件流传递文件,通过请求微信接口获取到的文件流为java.io.InputStream,想讲输出流传递到另一个项目,需要讲输入流转化为输出流抛出去

文件流处理(服务接口)

@PostMapping("/getimage")
    public void getImage(String s,HttpServletRequest request,HttpServletResponse response) throws Exception{
        InputStream inStream = this.wxService.getMaterialService().materialImageOrVoiceDownload(s); //从微信接口获取的输入流
        byte[] data =IOUtils.toByteArray(inStream);  //讲输出流转换成字节数组
        inStream.close();  
        response.setContentType("image/png");    //设置文件格式,这里已经确定得到的是图片格式,如果时其他格式的文件,区分处理
        OutputStream stream = response.getOutputStream();  //创建输出流
        stream.write(data);    //将数据写入输出流
        stream.flush();  
        stream.close();  
    }

文件流接收

// 下载缩略图,用于本地展示
                                Response res = Okhttp.getfile(url, parameter);  //请求接口
                                InputStream in = res.body().byteStream();  //取出接口返回的文件流
                                String picurl = downloadPicture(in);   //保存文件

// 保存图片文件的方法
    public String downloadPicture(InputStream thumbmedia) {
        try {
            String curDate = DateTime.get(DateTime.FORMATYYYYMMDD, new Date());
            String folder = getFullPath() + ".." + FILE_DIR + curDate + "/";
            File dir = new File(folder);
            if (!dir.exists()) {
                dir.mkdirs();
            }
            String fileseq = seqRule.get(YmStatic.SEQ_FILEUPD_SEQ);
            String absoulteFileName = folder + fileseq; // 绝对路径
            String relativeFileName = FILE_DIR + curDate + "/" + fileseq;
            boolean saveflag = FileMan.SaveInputStream(thumbmedia, absoulteFileName);
            if (saveflag) {
                String fileType = FileType.getFileType(absoulteFileName);
                if (!StringMan.isNull(fileType)) {
                    FileMan.renameFile(absoulteFileName, absoulteFileName + "." + fileType);
                    relativeFileName += "." + fileType;
                }
                return relativeFileName;
            } else {
                return "";
            }
        } catch (Exception e) {
            e.printStackTrace();
            return "";
        }
    }

转载于:https://www.cnblogs.com/dcybook/p/7891876.html

okhttp请求文件异常解决方法相关推荐

  1. Action请求后台出现Response already commited异常解决方法

    Action请求后台出现Response already commited异常解决方法 参考文章: (1)Action请求后台出现Response already commited异常解决方法 (2) ...

  2. 逆水寒服务器更新响应超时,逆水寒patcher.zip文件更新失败怎么办 更新文件异常问题解决方法...

    逆水寒ol是由网易打造的一款国风武侠动作角色扮演类网游,游戏进行了更新推送,但是不少玩家出现了更新文件异常的问题,之后手动下载更新文件也无法下载,那么该如何解决?下面小编带来更新文件异常问题解决方法, ...

  3. java.lang.OutOfMemoryError​异常解决方法

    java.lang.OutOfmemoryError: PermGen Space 的错误,导致项目无法正常运行. 出现这个错误的原因,总结一下: PermGen Space指的是内存的永久保存区,该 ...

  4. ueditor上传大容量视频报http请求错误的解决方法

    故障现象: 当使用百度编辑器ueditor上传大容量视频或大容量图片的时候,编辑器报"http请求错误"的解决方法详解: 原因分析: 目前很多CMS整合了百度的ueditor编辑器 ...

  5. React项目中请求跨域解决方法

    React项目中请求跨域解决方法 今天经理给我了一个React项目地址,让我拉下来并跑起来,拉下来运行起来后,发现所有的请求都失败了,并且都是由于跨域问题导致的.花了点时间,解决了这个问题,在这里记录 ...

  6. linux E325: 注意 发现交换文件 “*.swp“ 解决方法

    今天修改脚本文件的时候手贱关掉Xshell了,导致我每次在编译的时候都会报下面这个异常 解决方法: 1)用命令恢复非正常文件,vim -r 非正常文件,然后再删除.swap文件,再次编辑文件时,不会再 ...

  7. win10提示系统资源不足,无法完成请求服务的解决方法

    win10提示系统资源不足,无法完成请求服务的解决方法 win10提示系统资源不足,无法完成请求服务的解决方法 问题描述 分析: 操作: 验证: 举一反三: 问题描述 最近安装xmlspy2013 破 ...

  8. 交管12123服务器维护,交管12123服务异常怎么办?交管12123 APP服务异常解决方法...

    交管12123APP是可以随时为你查询违章.缴纳违法费用等服务的软件,也是一款专门为了驾校考试研发的软件,但是最近很多用户发现登录时会遇到服务异常的问题,那么,要怎么解决这个问题呢?接下来,小编就为大 ...

  9. RXTXcomm.jar 读取串口数据时报 Underlying input stream returned zero bytes 异常解决方法

    RXTXcomm.jar 读取串口数据时报 Underlying input stream returned zero bytes 异常解决方法 一.示例程序 1.依赖 2.示例代码 3.测试读取文件 ...

最新文章

  1. 有关SwfUpLoad的2038 错误
  2. nginx图片服务器性能,搭建nginx图片服务器
  3. 学python比较好的书-学习Python比较好的书籍推荐
  4. Django学习小记[2] —— Model
  5. cxGRID能否对模板进行保存
  6. Validator 使用总结
  7. Restful的理解,Restful 优缺点
  8. 家里的存款以每个月六千元人民币的速度增长,这能达到什么生活水平?
  9. 资深技术专家张荣华:架构的方法论
  10. spring oracle数据源配置,spring的多数据源配置(spring+ibatis + oracle环境下)
  11. 数据结构之红黑树简介
  12. 基于 WebRTC 创建一款多人联机游戏
  13. 数据库之Mac下Mysql命令全集
  14. 谷歌浏览器历史记录查看很慢解决方案
  15. 计算机专业可以考天文学研究生吗,报考南京大学天文系有什么要求?
  16. 阿里如何实现高性能分布式强一致的独立 Paxos 基础库?
  17. 微信小程序view的折叠与展开
  18. echarts设置饼状图的标示线以及标示文字的颜色等相关样式
  19. Java Fork/Join框架
  20. java jacob下载_jacob-1.18_src jacob开发包网站下载的 - 下载 - 搜珍网

热门文章

  1. 一文看懂人脸识别(4个特点+4个实现步骤+5个难点+算法发展轨迹)
  2. A/B测试中我们都会犯的十个常见错误
  3. 如何从0到1打造一款AI产品?
  4. 【SAP技术】SAP MM 如何看一个自定义移动类型是复制哪个标准移动类型而创建的?
  5. 「机器学习速成」数据预处理,特征工程,良好特征的特点
  6. 人工智能医疗是把双刃剑,“对抗性攻击”后可导致误判
  7. 企业管理:高层不狠,中层不坏,累死三军
  8. 干货丨盘点人工智能从业者必备的10个深度学习方法
  9. 开始即结束,Meta元宇宙OS要黄?
  10. 如何正确地运用人工智能模型?