java 实现微信服务器下载图片到自己服务器
java实现微信服务器下载图片到自己服务器
此功能的实现需要注意java中IO流的操作及网路开发,
实现代码:
/**
*@authorwhy
*
*/
publicclassPicDownload{
/**
*
*根据文件id下载文件
*
*
*
*@parammediaId
*
*媒体id
*
*@throwsException
*/
publicstaticInputStreamgetInputStream(StringaccessToken,StringmediaId){
InputStreamis=null;
Stringurl="http://file.api.weixin.qq.com/cgi-bin/media/get?access_token="
+accessToken+"&media_id="+mediaId;
try{
URLurlGet=newURL(url);
HttpURLConnectionhttp=(HttpURLConnection)urlGet
.openConnection();
http.setRequestMethod("GET");//必须是get方式请求
http.setRequestProperty("Content-Type",
"application/x-www-form-urlencoded");
http.setDoOutput(true);
http.setDoInput(true);
System.setProperty("sun.net.client.defaultConnectTimeout","30000");//连接超时30秒
System.setProperty("sun.net.client.defaultReadTimeout","30000");//读取超时30秒
http.connect();
//获取文件转化为byte流
is=http.getInputStream();
}catch(Exceptione){
e.printStackTrace();
}
returnis;
}
/**
*
*获取下载图片信息(jpg)
*
*
*
*@parammediaId
*
*文件的id
*
*@throwsException
*/
publicstaticvoidsaveImageToDisk(StringaccessToken,StringmediaId,StringpicName,StringpicPath)
throwsException{
InputStreaminputStream=getInputStream(accessToken,mediaId);
byte[]data=newbyte[10240];
intlen=0;
FileOutputStreamfileOutputStream=null;
try{
fileOutputStream=newFileOutputStream(picPath+picName+".jpg");
while((len=inputStream.read(data))!=-1){
fileOutputStream.write(data,0,len);
}
}catch(IOExceptione){
e.printStackTrace();
}finally{
if(inputStream!=null){
try{
inputStream.close();
}catch(IOExceptione){
e.printStackTrace();
}
}
if(fileOutputStream!=null){
try{
fileOutputStream.close();
}catch(IOExceptione){
e.printStackTrace();
}
}
}
}
/**
*图片下载
*
*@paramaccessToken
*@parammediaId
*/
publicstaticvoidgetPic(StringaccessToken,StringmediaId){
StringrequestUrl="http://file.api.weixin.qq.com/cgi-bin/media/get?access_token=ACCESS_TOKEN&media_id=MEDIA_ID";
requestUrl=requestUrl.replace("ACCESS_TOKEN",accessToken).replace(
"MEDIA_ID",mediaId);
JSONObjectjsonObject=WeixinUtil.httpRequest(requestUrl,"GET",null);
System.out.println(jsonObject);
}
publicstaticvoidmain(String[]args)throwsException{
StringaccessToken="";
StringmediaId="";
StringpicName="";
saveImageToDisk(accessToken,mediaId,picName,"f:/");
}
}
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!