一、微信上传素材接口简介

1、请求:该请求是使用post提交地址为:

https://api.weixin.qq.com/cgi-bin/media/uploadnews?access_token=ACCESS_TOKEN

其中ACCESS_TOKEN是我们动态获取的。

发送的数据:

{"articles":[

{

"thumb_media_id":"qI6_Ze_6PtV7svjolgs-rN6stStuHIjs9_DidOHaj0Q-mwvBelOXCFZiq2OsIU-p",

"author":"xxx",

"title":"Happy Day",

"content_source_url":"www.qq.com",

"content":"content",

"digest":"digest",

"show_cover_pic":"1"

},

{

"thumb_media_id":"qI6_Ze_6PtV7svjolgs-rN6stStuHIjs9_DidOHaj0Q-mwvBelOXCFZiq2OsIU-p",

"author":"xxx",

"title":"Happy Day",

"content_source_url":"www.qq.com",

"content":"content",

"digest":"digest",

"show_cover_pic":"0"

}

]

}

articles,图文消息,一个图文消息支持1到10条图文

thumb_media_id,图文消息缩略图的media_id,可以在基础支持-上传多媒体文件接口(java微信接口之三—上传多媒体文件)中获得

author,图文消息的作者

title,图文消息的标题

content_source_url,在图文消息页面点击“阅读原文”后的页面

content,图文消息页面的内容,支持HTML标签

digest,图文消息的描述

show_cover_pic,是否显示封面,1为显示,0为不显示

2、响应:该响应也是以json方式返回的

正确的时候返回的数据:

{

"type":"news",

"media_id":"CsEf3ldqkAYJAU6EJeIkStVDSvffUJ54vqbThMgplD-VJXXof6ctX5fI6-aYyUiQ",

"created_at":1391857799

}

type为媒体文件类型,分别有图片(image)、语音(voice)、视频(video)和缩略图(thumb),次数为news,即图文消息,

media_id就是上传素材后素材的id,

created_at表示创建的时间。

错误的时候返回的数据:{"errcode":40004,"errmsg":"invalid media type"}

errcode,为错误代码,errmsg为错误信息

二、关于java代码的调用

该接口的调用与java微信接口之三—上传多媒体文件一样,需要使用到commons-httpclient。其中数据是构造成json数据后,放在post方法请求体里面发送给服务器端。

三、代码实现

1 importjava.io.File;2 importjava.util.ArrayList;3 importjava.util.HashMap;4 importjava.util.List;5 importjava.util.Map;6

7 importorg.apache.commons.httpclient.methods.PostMethod;8 importorg.apache.commons.httpclient.methods.multipart.FilePart;9 importorg.apache.commons.httpclient.methods.multipart.MultipartRequestEntity;10 importorg.apache.commons.httpclient.methods.multipart.Part;11 importorg.apache.http.HttpEntity;12 importorg.apache.http.HttpResponse;13 importorg.apache.http.HttpStatus;14 importorg.apache.http.client.HttpClient;15 importorg.apache.http.client.methods.HttpGet;16 importorg.apache.http.impl.client.DefaultHttpClient;17 importorg.apache.http.util.EntityUtils;18

19 importcom.google.gson.Gson;20 importcom.google.gson.JsonArray;21 importcom.google.gson.JsonObject;22 importcom.google.gson.JsonParser;23

24 public classTest25 {26 public static final String GET_TOKEN_URL = "https://api.weixin.qq.com/cgi-bin/token";//获取access

27 public static final String UPLOAD_IMAGE_URL = "http://file.api.weixin.qq.com/cgi-bin/media/upload";//上传多媒体文件

28 public static final String UPLOAD_FODDER_URL = "https://api.weixin.qq.com/cgi-bin/media/uploadnews";29 public static final String APP_ID = "wxa549b28c24cf341e";30 public static final String SECRET = "78d8a8cd7a4fa700142d06b96bf44a37";31

32 /**

33 * 上传素材34 *35 *@paramuploadurl36 * apiurl37 *@paramaccess_token38 * 访问token39 *@paramdata40 * 提交数据41 *@return

42 */

43 public staticString uploadFodder(String uploadurl, String access_token,44 String data)45 {46 org.apache.commons.httpclient.HttpClient client = neworg.apache.commons.httpclient.HttpClient();47 String posturl = String.format("%s?access_token=%s", uploadurl,48 access_token);49 PostMethod post = newPostMethod(posturl);50 post51 .setRequestHeader(52 "User-Agent",53 "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:30.0) Gecko/20100101 Firefox/30.0");54 post.setRequestHeader("Host", "file.api.weixin.qq.com");55 post.setRequestHeader("Connection", "Keep-Alive");56 post.setRequestHeader("Cache-Control", "no-cache");57 String result = null;58 try

59 {60 post.setRequestBody(data);61 int status =client.executeMethod(post);62 if (status ==HttpStatus.SC_OK)63 {64 String responseContent =post.getResponseBodyAsString();65 System.out.println(responseContent);66 JsonParser jsonparer = new JsonParser();//初始化解析json格式的对象

67 JsonObject json =jsonparer.parse(responseContent)68 .getAsJsonObject();69 if (json.get("errcode") == null)70 {//正确 { "type":"news", "media_id":"CsEf3ldqkAYJAU6EJeIkStVDSvffUJ54vqbThMgplD-VJXXof6ctX5fI6-aYyUiQ","created_at":1391857799}

71 result = json.get("media_id").getAsString();72 }73 }74 }75 catch(Exception e)76 {77 e.printStackTrace();78 }79 finally

80 {81 returnresult;82 }83 }84

85 public static void main(String[] args) throwsException86 {87 String accessToken = getToken(GET_TOKEN_URL, APP_ID, SECRET);//获取token在微信接口之一中获取

88 if (accessToken != null)//token成功获取

89 {90 System.out.println(accessToken);91 File file = new File("f:" + File.separator + "2000.JPG"); //获取本地文件

92 String id = uploadImage(UPLOAD_IMAGE_URL, accessToken, "image",93 file);//java微信接口之三—上传多媒体文件 可获取

94 if (id != null)95 {96 //构造数据

97 Map map = newHashMap();98 map.put("thumb_media_id", id);99 map.put("author", "wxx");100 map.put("title", "标题");101 map.put("content", "测试fdsfdsfsdfssfdsfsdfsdfs");102 map.put("digest", "digest");103 map.put("show_cover_pic", "0");104

105 Map map2 = newHashMap();106 map2.put("thumb_media_id", id);107 map2.put("author", "wxx");108 map2.put("content_source_url", "www.google.com");109 map2.put("title", "标题");110 map2.put("content", "测试fdsfdsfsdfssfdsfsdfsdfs");111 map2.put("digest", "digest");112

113 Map map3 = newHashMap();114 List list = new ArrayList();115 list.add(map);116 list.add(map2);117 map3.put("articles", list);118

119 Gson gson = newGson();120 String result = gson.toJson(map3);//转换成json数据格式

121 String mediaId =uploadFodder(UPLOAD_FODDER_URL, accessToken,122 result);123 if (mediaId != null)124 {125 System.out.println(mediaId);126 }127 }128 }129 }130 }

上传成功就会打印该素材id。

微信上传素材 java_java微信接口之四—上传素材相关推荐

  1. java微信html5上传图片代码,java微信接口之四—上传素材

    一.微信上传素材接口简介 1.请求:该请求是使用post提交地址为: https://api.weixin.qq.com/cgi-bin/media/uploadnews?access_token=A ...

  2. 微信公众平台 图片 java_Java微信公众平台之素材管理

    微信素材管理和群发这块文档对Java很不友好.本文只对新增临时素材,新增永久素材做介绍,其余获取.删除.修改自行补充 公众号经常有需要用到一些临时性的多媒体素材的场景,例如在使用接口特别是发送消息时, ...

  3. Day228229.上传查询医院接口、上传查询删除科室接口、上传查询删除排班接口 -尚医通

    尚医通 一.上传医院接口 参考<尚医通API接口文档.docx>业务接口4.1上传医院 参考<医院接口模拟系统.docx>进行接口测试与数据上传 这里要整合hospital-m ...

  4. 上传网络图片到微信临时素材换取mediaId

    一.前提说明 很多微信开发的场景需要传一个mediaId,即微信素材的媒体id,根据[微信开放平台接口文档],将已知网络图片URL上传到微信服务器,并换取媒体id,这个地方用到缓存.相关代码如下:(h ...

  5. 微信上传素材 java_微信上传素材php代码

    $url:微信上传媒体素材的api接口. $path_img:服务器文件的绝对路径 这里的绝对路径不是$_FILES中的临时路径,不然会报文件类型错误的异常. private function Htt ...

  6. 图片上传(调用微信接口)

    图片上传之原生方法 图片上传.压缩.回显.缩略图放大.删除.下载,可以参考这儿(h5方法) https://github.com/zhangstar1331/pictureUpload 效果展示 背景 ...

  7. 微信公众号通过图片选取接口上传到阿里oss

    配置并调用公众号接口权限 1.配置权限微信公众号接口,添加如下权限 jsApiList: ['chooseImage','getLocalImgData',] 2.拍照或选取图片,拿到base64位图 ...

  8. typecho本地上传头像_微信QQ抖音透明头像制作方法,还有不会的吗?

       精彩内容每天更新 她搂着被子从床上坐起来,愣了十几秒,听到厨房有动静后,这才撒着脚往房间外跑,看到一抹修长背影在厨房里忙活. 邵允琛做好早餐从厨房出来,见陆瑶穿着睡裙站那,眉头皱了皱," ...

  9. 小程序 图片上传php后台,微信小程序图片选择、上传到服务器、预览(PHP)实现实例...

    微信小程序图片选择.上传到服务器.预览(php)实现实例 小程序实现选择图片.预览图片.上传到开发者服务器上 后台使用的tp3.2 图片上传 请求时候的header参考时可以去掉(个人后台验证权限使用 ...

最新文章

  1. IDEA只修改代码提示为不区分大小写
  2. 初等数学O 集合论基础 第二节 映射与集合的势
  3. 2 自己编写:AppDelegate,CCApplication,CCApplicationProtocol
  4. Oracle资源管理器(二)-- 创建和使用数据库资源计划
  5. ubuntu18 常用命令
  6. 【再探backbone 02】集合-Collection
  7. 贝叶斯估计和极大似然估计
  8. Unity界面插件NGUI核心组件说明
  9. 在PowerDesigner导出到数据库的方法
  10. Deep Inside Convolutional Networks: Visualising Image Classification Models and Saliency Maps
  11. spring mvc文件上传与下载
  12. 隐马尔可夫模型python_机器学习中的隐马尔科夫模型(HMM)详解
  13. validate.js的使用
  14. Linux 题库及答案永久开放共同学习进步
  15. Word 利用 VBA 批量设置图片格式
  16. Python爬虫入门教程15:音乐网站数据的爬取
  17. BAM: Bottleneck Attention Module算法笔记
  18. 水果食用大全 -- 果品食疗 - 柿子
  19. 金融财务英译汉常用词怎样翻译
  20. 张亚勤谈AI:中国具有结构性优势发展人工智能

热门文章

  1. 一文带你了解数仓智能运维框架
  2. 华为云PB级数据库GaussDB(for Redis)揭秘第13期:如何搞定推荐系统存储难题
  3. 只需6步,教你从零开发一个签到小程序
  4. 云上可靠性测试:让我们一起给开发找点事儿
  5. java springmvc注解详解_springMVC注解开发详解(转)
  6. mysql可以创建多少条数据类型_mysql支持的数据类型
  7. 韩顺平php视频笔记80 81 错误日志 异常捕获
  8. 网页连接的服务器失败是怎么回事啊,网页怎么连接服务器失败
  9. 状态空间模型中参数的贝叶斯估计
  10. 连接路由器后电脑连不上网_猫、路由器、交换机的区别