微信上传永久素材接口开发(一)

原创 2016年05月30日 15:20:12

最近帮朋友开发一个微信内容管理平台,想要利用这个平台上传图片或者视频资源到微信平台。看了一下微信的开发文档,发现微信对于上传永久素材这个接口,给出的文档太过简略,而且提供的样例也不是代码的方式,只给了一个curl的命令,用法倒是简单,但是用JAVA代码去掉用curl命令还是有诸多的不方便的。如是,考虑能不能用JAVA代码来模拟这个curl命令。

百度了一下,发现似乎有不少人遇到这个问题,好多人都在问该如何利用JAVA代码上传永久素材。

好在,确实找到了一个代码,能够上传视频格式的永久素材,原文地址如下:http://www.lanrenjz.com/news/show-1776.html

        代码如下:

     

public static String postFile(String url, String filePath,
String title,String introduction) {
File file = new File(filePath);
if(!file.exists())
return null;
String result = null;
try {
URL url1 = new URL(url); 
HttpURLConnection conn = (HttpURLConnection) url1.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);
}
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();
System.out.println(result);
} catch (ClientProtocolException e) {
logger.error("postFile,不支持http协议",e);
} catch (IOException e) {
logger.error("postFile数据传输失败",e);
}
logger.info("{}: result={}",url,result);
return result;
}

public static void main(String[] args) {
String url = "https://api.weixin.qq.com/cgi-bin/material/add_material?access_token="
+ "U_0AIUrkfmVk0LXlaGu0lx5CXx-_4&type=video";
postFile(url, "/Users/jlusoft/Desktop/test.mp4","test","dfd");
}

拿来一试,果然可行。

下一篇:http://blog.csdn.net/oarsman/article/details/51538328

Java 微信公众号上传永久素材的方法

用 Java 实现微信公众号上传永久素材,代码如下: /** * 上传其他永久素材(图片素材的上限为5000,其他类型为1000) * @param appid * @param se...
  • yh88356656
  • yh88356656
  • 2016年02月18日 14:09
  • 13381

java实现微信新增永久视频素材

public static String postFile(String url, String filePath, String title,String introduction) { Fil...
  • u014525155
  • u014525155
  • 2016年08月08日 17:00
  • 350

微信上传永久素材接口开发(二)

于是咱们照猫画虎,将这段代码改一下,变成可以上传图片素材的程序: public static String postFile(String url, String filePath) { File ...
  • oarsman
  • oarsman
  • 2016年05月30日 15:24
  • 4442

解决httpclient上传multipart form-data文件失败

目标URL的multipart form-data是这样的-----------------------------7e1a51350702 Content-Disposition: form-dat...
  • dgeek
  • dgeek
  • 2017年09月07日 21:56
  • 761

php 微信永久素材视频上传

a.php 省略了一不部分token!!!! $msg=$GLOBALS['HTTP_RAW_POST_DATA']; $msgstr=(array)simplexml_load_string($...
  • mengdc
  • mengdc
  • 2017年08月23日 21:14
  • 527

PHP开发微信公众号,实现上传永久素材

众号永久素材从名字可以知道, 我们的永久素材上传到微信服务器后, 只要你不删除, 永久有效, 可以使用。 所以我们上传永久素材后, ...
  • towtotow
  • towtotow
  • 2017年11月08日 08:57
  • 145

Java 微信公众号上传永久素材的方法

/**   * 上传其他永久素材(图片素材的上限为5000,其他类型为1000)   * @param appid   * @param secret   * @return   * @throws ...
  • u014525155
  • u014525155
  • 2016年08月08日 17:01
  • 601

Java 微信公众号上传永久素材的方法

/** * 上传其他永久素材(图片素材的上限为5000,其他类型为1000) * * @return * @throws Exception */ public static JSONObj...
  • u013791374
  • u013791374
  • 2016年11月21日 12:56
  • 3182

微信开发之——素材管理(永久图文素材上传)

{ "articles": [{ "title": TITLE, "thumb_media_id": THUMB_MEDIA_ID, "author": ...
  • u013589542
  • u013589542
  • 2017年02月13日 17:14
  • 1331

微信开发中使用curl上传永久素材

关键字:curl、微信开发、上传永久素材前言微信开发,需要使用的素材(如图片、视频)必须先上传到微信服务器,通过微信服务器返回的meida_id在腾讯系域名内使用。当然可以直接使用代码来实现上传请求,...
  • sam976
  • sam976
  • 2016年09月15日 12:00
  • 2271
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:微信上传永久素材接口开发(一)
举报原因:
原因补充:

(最多只允许输入30个字)