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 "";
}
}
okhttp请求文件异常解决方法的更多相关文章
- (转)ORA-12514 TNS 监听程序当前无法识别连接描述符中请求服务 的解决方法
早上同事用PL/SQL连接虚拟机中的Oracle数据库,发现又报了"ORA-12514 TNS 监听程序当前无法识别连接描述符中请求服务"错误,帮其解决后,发现很多人遇到过这样的问 ...
- ueditor上传大容量视频报http请求错误的解决方法
故障现象: 当使用百度编辑器ueditor上传大容量视频或大容量图片的时候,编辑器报"http请求错误"的解决方法详解: 原因分析: 目前很多CMS整合了百度的ueditor编辑器 ...
- C#操作FTP报错,远程服务器返回错误:(550)文件不可用(例如,未找到文件,无法访问文件)的解决方法
最近在做项目的时候需要操作ftp进行文件的上传下载,但在调用using (var response = (FtpWebResponse)FtpWebRequest.GetResponse())的时候总 ...
- win10系统桌面快捷键图标异常解决方法
win10系统桌面快捷键图标异常解决方法 前言: 有一次我的一个图标变成白色,找到:https://jingyan.baidu.com/article/948f5924148e67d80ef5f947 ...
- SVN Attempted to lock an already-locked dir异常解决方法
Attempted to lock an already-locked dir异常解决方法 eclipse或myeclipse用svn提交的时候报错: Attempted to lock an alr ...
- 安装visual studio2017后 首次启动出现ActivityLog.xml异常解决方法
安装visual studio2017后 首次启动出现ActivityLog.xml异常解决方法 ps:操作系统是win10 在官网下载了vs2017社区版按照教程(教程链接在文末)安装完成之后,首次 ...
- Android 异常解决方法【汇总】
(1)异常:Android中引入第三方Jar包的方法(Java.lang.NoClassDefFoundError解决办法) 1.在工程下新建lib文件夹,将需要的第三方包拷贝进来.2.将引用的第三方 ...
- Tomcat部署java项目java.lang.OutOfMemoryError异常解决方法
java.lang.OutOfMemoryError异常解决方法 Window系统环境下,在catalina.bat文件第一行添加以下内容 set JAVA_OPTS=-Xms512m -Xmx512 ...
- springboot springmvc 抛出全局异常解决方法
springboot中抛出异常,springboot自带的是springmvc框架,这个就不多说了. springmvc统一异常解决方法这里要说明的是.只是结合了springboot的使用而已.直接上 ...
随机推荐
- React 最简单的入门教程
一看就懂的ReactJs入门教程(精华版) 现在最热门的前端框架有AngularJS.React.Bootstrap等.自从接触了ReactJS,ReactJs的虚拟DOM(Virtual D ...
- Apriori
基本概念 项与项集:设itemset={item1, item_2, …, item_m}是所有项的集合,其中,item_k(k=1,2,…,m)成为项.项的集合称为项集(itemset),包含k个项 ...
- 一个HttpClient使用Windows认证请求WCF服务的例子
有个项目需要调用第三方SDK,而SDK获取服务器的已安装的特殊打印机列表返回给调用方. 但我不想依赖这个SDK,因为这个SDK是使用.NET Framework编写的,而我的项目是使用.NET Cor ...
- 2019/3/28 wen 继承
- 剑指offer(38)二叉树的深度
题目描述 输入一棵二叉树,求该树的深度.从根结点到叶结点依次经过的结点(含根.叶结点)形成树的一条路径,最长路径的长度为树的深度. 题目分析 树的深度=左子树的深度和右子树深度中最大者+1 代码 fu ...
- 【jvisualvm远程监控配置】
第一步:首先通过hostname -i 和ifconfig命令,查看一下IP地址是否一致 如果不一致,修改hosts的IP地址:vi /etc/hosts 把ip地址和ifconfig的地址修 ...
- [BZOJ2298]problem a
Description 一次考试共有n个人参加,第i个人说:“有ai个人分数比我高,bi个人分数比我低.”问最少有几个人没有说真话(可能有相同的分数) Input 第一行一个整数n,接下来n行每行两个 ...
- 【Bilinear interpolation】双线性插值详解(转)
最近在做视频拼接的项目,里面用到了图像的单应性矩阵变换,在最后的图像重映射,由于目标图像的坐标是非整数的,所以需要用到插值的方法,用的就是双线性插值,下面的博文主要是查看了前辈的博客对双 ...
- stlcky footers布局小技巧
sticky-footer解决方案 在网页设计中,Sticky footers设计是最古老和最常见的效果之一,大多数人都曾经经历过.它可以概括如下:如果页面内容不够长的时候,页脚块粘贴在视窗底部:如果 ...
- 三层实现办公用品表CRUD(全过程)-ASP
好久都没有写写技术博客了,自己最近几个月都要忙着搬家还有添置家当,所以一些博客就很少去写了,天道酬勤,有些吃饭的家伙还是不能有所懈怠,所以送上一个花了几小时给人事同事写的简单办公用品表的CRUD,希望 ...