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

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。

原文:http://www.cnblogs.com/always-online/p/3871679.html

java微信html5上传图片代码,java微信接口之四—上传素材相关推荐

  1. 微信上传素材 java_java微信接口之四—上传素材

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

  2. 手机浏览器上传图片代码php,移动端图片上传,使用微信浏览器后端接受到的文件类型是application/octet-stream...

    仅在部分安卓机的微信和qq浏览器上发现此问题(用的是华为荣耀v8)后端语言是php 苹果正常,uc 手机自带等浏览器均正常,都能正确识别文件类型(image/jpeg) 提交方式是formData,代 ...

  3. java 通过id获取html代码_Maven私服安装配置,java通过私服下载代码,并打包后上传到私服(Nexus)...

    Maven私服一般安装Nexus. 首先,Nexus下载,访问Nexus官方网址https://www.sonatype.com/download-nexus-repo-oss 下载完成后是个压缩包 ...

  4. 微信小程序开发文档及文件上传示例(JAVA)

    微信小程序开发文档及文档上传示例 一.什么是微信小程序 小程序是一种无需下载安装,即可使用的手机应用.只需要扫描二维码,或是搜一搜,就能立即使用. 与APP不同的是,小程序无需下载安装.无需卸载.用完 ...

  5. java微信公众平台开发四(上传素材)

    最近公司要做微信方面的开发,今天说下,如何使用微信的素材管理的接口,这里主要讲下素材的上传接口,下载之类的比较简单(就是解析json而已),今天会把所有的素材上传写道一个方法里供大家参考,关于上传的接 ...

  6. java web 上传图片漏洞_Web安全:文件上传漏洞

    原标题:Web安全:文件上传漏洞 一般将文件上传归类为直接文件上传与间接文件上传.直接文件上传就是服务器根本没有做任何安全过滤,导致攻击者可以直接上传小马文件及大马文件(如ASP.ASPX.PHP.J ...

  7. java公众号上传素材及发送图文消息实现

    微信公众号先上传素材,再推送消息java代码实现: 首先公众号的图文消息是可以登录公众号,然后去管理--素材管理  下面去手动添加图文,图片,视频,音乐素材的.这样添加的素材属于永久素材. 用java ...

  8. html上传图片裁剪,基于HTML5+JS实现本地图片裁剪并上传功能

    基于HTML5+JS实现本地图片裁剪并上传功能 2019-01-07 编程之家 https://www.jb51.cc 编程之家收集整理的这篇文章主要介绍了基于HTML5+JS实现本地图片裁剪并上传功 ...

  9. 微信小程序拍照视频上传php,微信小程序-拍照或选择图片并上传文件

    微信小程序-拍照或选择图片并上传文件 调用拍照API:https://mp.weixin.qq.com/debug/wxadoc/dev/api/media-picture.html?t=201612 ...

最新文章

  1. HTTP协议无状态中的 状态 到底指的是什么?
  2. 史上最强翻译器,没有之一,不接受反驳
  3. Cross-Validation(交叉验证)详解
  4. 如何在SAP S/4HANA Cloud系统里创建employee
  5. DotLiquid模板引擎简介
  6. WhateverOrigin –与Heroku和Play对抗相同的原产地政策! 构架
  7. dfs hdfs 修改文件名称_CDH6.3.2生产更换HDFS 数据目录
  8. cesium广告牌_公路广告牌
  9. asp.net权限控制配置web.config
  10. python时间模块提取时间_【转载】python自动提取文本中的时间(包含中文日期)...
  11. RHEL 8 - 用OpenSCAP工具对容器镜像进行漏洞安全合规扫描,并修复
  12. 《图解机器学习-杉山将著》读书笔记---CH5
  13. 毕设题目:Matlab手势识别
  14. 多格式无水印录屏软件
  15. npm jdf压缩并上传静态文件到服务器
  16. Android多功能视频播放器GSYVideoPlayer开发流程
  17. 两个非常不错的在线pdf转epub的网站,没有上传大小限制
  18. 部分经济学术语英文简写
  19. Java以毫秒为单位返回秒表记录的流逝时间(即求一个程序段的运行时间)
  20. HTML下拉菜单怎么做成横向,JQuery实现绚丽的横向下拉菜单

热门文章

  1. 程序员转型产品经理经验分享
  2. 如何加固网站服务器避免被攻击
  3. 关于未来几年家庭信息通讯的几点遥想
  4. MATLAB实现物体颜色识别
  5. 国风 古风音乐 什么网站app比较好
  6. java ntohl 类似函数_关于 htonl 和 ntohl 的实现
  7. 新品推荐【旺旺食神猪】来了!!!
  8. 1198:逆波兰表达式
  9. 表哥用Python爬取数千条淘宝商品数据后,发现淘宝这些潜规则!
  10. 手机号证件号等加密方案