java上传永久图文素材_Java-微信开发上传永久素材(支持所有文件类型)
/**
* 上傳永久素材
* @paramfile
* @paramtype
* @paramtitle type為video時需要,其他類型設null
* @paramintroduction type為video時需要,其他類型設null
* @return{"media_id":MEDIA_ID,"url":URL}
*/
public static String uploadPermanentMaterial(File file, String type, String title, String introduction) {
String access_token = "10__IK_6jLYuvdvIwdftOObUbTt8HcKZER8UBjvxD6CVpbJRBYGtGQ-HmqfnSrg4YBxQ4wBS4DPaksWeQzte1jmh1g1zLULAOA4leL5iekLX5tdQYlqRQJtSKOh6FeratK4WBlNT0cXdDXPdplKFQHfAIAOZQ";
String url = "https://api.weixin.qq.com/cgi-bin/material/add_material?access_token="
+ access_token + "&type=" + type;
String result = null;
try {
URL uploadURL = new URL(url);
HttpURLConnection conn = (HttpURLConnection) uploadURL.openConnection();
conn.setConnectTimeout(5000);
conn.setReadTimeout(30000);
conn.setDoOutput(true);
conn.setDoInput(true);
conn.setUseCaches(false);
conn.setRequestMethod("POST");
conn.setRequestProperty("Connection", "Keep-Alive");
conn.setRequestProperty("Cache-Control", "no-cache");
String boundary = "-----------------------------" + System.currentTimeMillis();
conn.setRequestProperty("Content-Type", "multipart/form-data; boundary=" + boundary);
OutputStream output = conn.getOutputStream();
output.write(("--" + boundary + "\r\n").getBytes());
output.write(String.format("Content-Disposition: form-data; name=\"media\"; filename=\"%s\"\r\n", file.getName()).getBytes());
output.write("Content-Type: video/mp4 \r\n\r\n".getBytes());
byte[] data = new byte[1024];
int len = 0;
FileInputStream input = new FileInputStream(file);
while ((len = input.read(data)) > -1) {
output.write(data, 0, len);
}
/*對類型為video的素材進行特殊處理*/
if ("video".equals(type)) {
output.write(("--" + boundary + "\r\n").getBytes());
output.write("Content-Disposition: form-data; name=\"description\";\r\n\r\n".getBytes());
output.write(String.format("{\"title\":\"%s\", \"introduction\":\"%s\"}", title, introduction).getBytes());
}
output.write(("\r\n--" + boundary + "--\r\n\r\n").getBytes());
output.flush();
output.close();
input.close();
InputStream resp = conn.getInputStream();
StringBuffer sb = new StringBuffer();
while ((len = resp.read(data)) > -1)
sb.append(new String(data, 0, len, "utf-8"));
resp.close();
result = sb.toString();
} catch (IOException e) {
//....
}
return result;
}
總結
以上是生活随笔為你收集整理的java上传永久图文素材_Java-微信开发上传永久素材(支持所有文件类型)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux中blk函数的用法
- 下一篇: 域名检测查询的方法是什么