okhttp请求文件异常解决方法
微信借口中获取素材的接口返回只是一个缓存的文件流 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请求文件异常解决方法相关推荐
- Action请求后台出现Response already commited异常解决方法
Action请求后台出现Response already commited异常解决方法 参考文章: (1)Action请求后台出现Response already commited异常解决方法 (2) ...
- 逆水寒服务器更新响应超时,逆水寒patcher.zip文件更新失败怎么办 更新文件异常问题解决方法...
逆水寒ol是由网易打造的一款国风武侠动作角色扮演类网游,游戏进行了更新推送,但是不少玩家出现了更新文件异常的问题,之后手动下载更新文件也无法下载,那么该如何解决?下面小编带来更新文件异常问题解决方法, ...
- java.lang.OutOfMemoryError异常解决方法
java.lang.OutOfmemoryError: PermGen Space 的错误,导致项目无法正常运行. 出现这个错误的原因,总结一下: PermGen Space指的是内存的永久保存区,该 ...
- ueditor上传大容量视频报http请求错误的解决方法
故障现象: 当使用百度编辑器ueditor上传大容量视频或大容量图片的时候,编辑器报"http请求错误"的解决方法详解: 原因分析: 目前很多CMS整合了百度的ueditor编辑器 ...
- React项目中请求跨域解决方法
React项目中请求跨域解决方法 今天经理给我了一个React项目地址,让我拉下来并跑起来,拉下来运行起来后,发现所有的请求都失败了,并且都是由于跨域问题导致的.花了点时间,解决了这个问题,在这里记录 ...
- linux E325: 注意 发现交换文件 “*.swp“ 解决方法
今天修改脚本文件的时候手贱关掉Xshell了,导致我每次在编译的时候都会报下面这个异常 解决方法: 1)用命令恢复非正常文件,vim -r 非正常文件,然后再删除.swap文件,再次编辑文件时,不会再 ...
- win10提示系统资源不足,无法完成请求服务的解决方法
win10提示系统资源不足,无法完成请求服务的解决方法 win10提示系统资源不足,无法完成请求服务的解决方法 问题描述 分析: 操作: 验证: 举一反三: 问题描述 最近安装xmlspy2013 破 ...
- 交管12123服务器维护,交管12123服务异常怎么办?交管12123 APP服务异常解决方法...
交管12123APP是可以随时为你查询违章.缴纳违法费用等服务的软件,也是一款专门为了驾校考试研发的软件,但是最近很多用户发现登录时会遇到服务异常的问题,那么,要怎么解决这个问题呢?接下来,小编就为大 ...
- RXTXcomm.jar 读取串口数据时报 Underlying input stream returned zero bytes 异常解决方法
RXTXcomm.jar 读取串口数据时报 Underlying input stream returned zero bytes 异常解决方法 一.示例程序 1.依赖 2.示例代码 3.测试读取文件 ...
最新文章
- 有关SwfUpLoad的2038 错误
- nginx图片服务器性能,搭建nginx图片服务器
- 学python比较好的书-学习Python比较好的书籍推荐
- Django学习小记[2] —— Model
- cxGRID能否对模板进行保存
- Validator 使用总结
- Restful的理解,Restful 优缺点
- 家里的存款以每个月六千元人民币的速度增长,这能达到什么生活水平?
- 资深技术专家张荣华:架构的方法论
- spring oracle数据源配置,spring的多数据源配置(spring+ibatis + oracle环境下)
- 数据结构之红黑树简介
- 基于 WebRTC 创建一款多人联机游戏
- 数据库之Mac下Mysql命令全集
- 谷歌浏览器历史记录查看很慢解决方案
- 计算机专业可以考天文学研究生吗,报考南京大学天文系有什么要求?
- 阿里如何实现高性能分布式强一致的独立 Paxos 基础库?
- 微信小程序view的折叠与展开
- echarts设置饼状图的标示线以及标示文字的颜色等相关样式
- Java Fork/Join框架
- java jacob下载_jacob-1.18_src jacob开发包网站下载的 - 下载 - 搜珍网