java 實現微信服務器下載圖片到自己服務器
更新時間:2017年05月23日 11:55:10 投稿:lqh
這篇文章主要介紹了 java 實現微信服務器下載圖片到自己服務器的相關資料,需要的朋友可以參考下
java 實現微信服務器下載圖片到自己服務器
此功能的實現需要注意java 中IO流的操作及網路開發(fā),
實現代碼:
/**
* @author why
*
*/
public class PicDownload {
/**
*
* 根據文件id下載文件
*
*
*
* @param mediaId
*
* 媒體id
*
* @throws Exception
*/
public static InputStream getInputStream(String accessToken, String mediaId) {
InputStream is = null;
String url = "http://file.api.weixin.qq.com/cgi-bin/media/get?access_token="
+ accessToken + "&media_id=" + mediaId;
try {
URL urlGet = new URL(url);
HttpURLConnection http = (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 (Exception e) {
e.printStackTrace();
}
return is;
}
/**
*
* 獲取下載圖片信息(jpg)
*
*
*
* @param mediaId
*
* 文件的id
*
* @throws Exception
*/
public static void saveImageToDisk(String accessToken, String mediaId, String picName, String picPath)
throws Exception {
InputStream inputStream = getInputStream(accessToken, mediaId);
byte[] data = new byte[10240];
int len = 0;
FileOutputStream fileOutputStream = null;
try {
fileOutputStream = new FileOutputStream(picPath+picName+".jpg");
while ((len = inputStream.read(data)) != -1) {
fileOutputStream.write(data, 0, len);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
if (inputStream != null) {
try {
inputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (fileOutputStream != null) {
try {
fileOutputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
/**
* 圖片下載
*
* @param accessToken
* @param mediaId
*/
public static void getPic(String accessToken, String mediaId) {
String requestUrl = "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);
JSONObject jsonObject = WeixinUtil.httpRequest(requestUrl, "GET", null);
System.out.println(jsonObject);
}
public static void main(String[] args) throws Exception {
String accessToken = "";
String mediaId = "";
String picName = "";
saveImageToDisk(accessToken, mediaId, picName,"f:/");
}
}
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

