JAVA微信开发[22]如何下载微信服务器中图片
发布时间:2021-06-08
发布时间:2021-06-08
在某些场合中,我们需要将微信发送的下载
下来保存在我们自己的服务器,以防止在过期后找不到的问题!在开发微信通讯方面更是重要, 具体的实现如下:
/**
*根据文件 id 下载文件*
豫的产物,我想这就是真正的走一步算一步。什么梦想
*@parammediaId
*媒体 id*@throwsException
*/
publicInputStreamgetInputStream(Strin gmediaId){
豫的产物,我想这就是真正的走一步算一步。什么梦想
GetExistAessTokengetExistAessToken=Ge tExistAessToken.getInstance();
StringaessToken=getExistAessToken.get
ExistAessToken();
InputStreamis=null;Stringurl="api.weixin.qq/cgi-bin/medi
豫的产物,我想这就是真正的走一步算一步。什么梦想
a/get?aess_token="
+aessToken+"&media_id="+mediaId;try{
URLurlGet=newURL(url);
HttpURLConnectionhttp=(HttpURLConnect ion)urlGet
豫的产物,我想这就是真正的走一步算一步。什么梦想
.openConnection();
http.setRequestMethod("GET");//必须是 get 方式请求
http.setRequestProperty("Content-Type ",
"application/x-www-form-urlencoded");
豫的产物,我想这就是真正的走一步算一步。什么梦想
http.setDoOutput(true);
http.setDoInput(true);System.setProperty("sun.client.defaul
tConnectTimeout","30000");//连接超时 30 秒
System.setProperty("sun.client.defaultReadTimeout","30000");//读取超时 30 秒
豫的产物,我想这就是真正的走一步算一步。什么梦想
http.connect();
//获取文件转化为 byte 流is=http.getInputStream();
}catch(Exceptione){
e.printStackTrace();}
豫的产物,我想这就是真正的走一步算一步。什么梦想
returnis;
}/**
*获取下载信息(jpg)
**@parammediaId
豫的产物,我想这就是真正的走一步算一步。什么梦想
*文件的 id
*@throwsException*/
publicvoidsaveImageToDisk(Stringmedia Id)throwsException{
InputStreaminputStream=getInputStream
豫的产物,我想这就是真正的走一步算一步。什么梦想
(mediaId);
byte[]data=newbyte[1024];intlen=0;
FileOutputStreamfileOutputStream=null ;
try{
豫的产物,我想这就是真正的走一步算一步。什么梦想
fileOutputStream=newFileOutputStream( "test1.jpg");
while((len=inputStream.read(data))!=-