java微信html5上传图片代码,java微信接口之四—上传素材
一、微信上传素材接口简介
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微信接口之四—上传素材相关推荐
- 微信上传素材 java_java微信接口之四—上传素材
一.微信上传素材接口简介 1.请求:该请求是使用post提交地址为: https://api.weixin.qq.com/cgi-bin/media/uploadnews?access_token=A ...
- 手机浏览器上传图片代码php,移动端图片上传,使用微信浏览器后端接受到的文件类型是application/octet-stream...
仅在部分安卓机的微信和qq浏览器上发现此问题(用的是华为荣耀v8)后端语言是php 苹果正常,uc 手机自带等浏览器均正常,都能正确识别文件类型(image/jpeg) 提交方式是formData,代 ...
- java 通过id获取html代码_Maven私服安装配置,java通过私服下载代码,并打包后上传到私服(Nexus)...
Maven私服一般安装Nexus. 首先,Nexus下载,访问Nexus官方网址https://www.sonatype.com/download-nexus-repo-oss 下载完成后是个压缩包 ...
- 微信小程序开发文档及文件上传示例(JAVA)
微信小程序开发文档及文档上传示例 一.什么是微信小程序 小程序是一种无需下载安装,即可使用的手机应用.只需要扫描二维码,或是搜一搜,就能立即使用. 与APP不同的是,小程序无需下载安装.无需卸载.用完 ...
- java微信公众平台开发四(上传素材)
最近公司要做微信方面的开发,今天说下,如何使用微信的素材管理的接口,这里主要讲下素材的上传接口,下载之类的比较简单(就是解析json而已),今天会把所有的素材上传写道一个方法里供大家参考,关于上传的接 ...
- java web 上传图片漏洞_Web安全:文件上传漏洞
原标题:Web安全:文件上传漏洞 一般将文件上传归类为直接文件上传与间接文件上传.直接文件上传就是服务器根本没有做任何安全过滤,导致攻击者可以直接上传小马文件及大马文件(如ASP.ASPX.PHP.J ...
- java公众号上传素材及发送图文消息实现
微信公众号先上传素材,再推送消息java代码实现: 首先公众号的图文消息是可以登录公众号,然后去管理--素材管理 下面去手动添加图文,图片,视频,音乐素材的.这样添加的素材属于永久素材. 用java ...
- html上传图片裁剪,基于HTML5+JS实现本地图片裁剪并上传功能
基于HTML5+JS实现本地图片裁剪并上传功能 2019-01-07 编程之家 https://www.jb51.cc 编程之家收集整理的这篇文章主要介绍了基于HTML5+JS实现本地图片裁剪并上传功 ...
- 微信小程序拍照视频上传php,微信小程序-拍照或选择图片并上传文件
微信小程序-拍照或选择图片并上传文件 调用拍照API:https://mp.weixin.qq.com/debug/wxadoc/dev/api/media-picture.html?t=201612 ...
最新文章
- HTTP协议无状态中的 状态 到底指的是什么?
- 史上最强翻译器,没有之一,不接受反驳
- Cross-Validation(交叉验证)详解
- 如何在SAP S/4HANA Cloud系统里创建employee
- DotLiquid模板引擎简介
- WhateverOrigin –与Heroku和Play对抗相同的原产地政策! 构架
- dfs hdfs 修改文件名称_CDH6.3.2生产更换HDFS 数据目录
- cesium广告牌_公路广告牌
- asp.net权限控制配置web.config
- python时间模块提取时间_【转载】python自动提取文本中的时间(包含中文日期)...
- RHEL 8 - 用OpenSCAP工具对容器镜像进行漏洞安全合规扫描,并修复
- 《图解机器学习-杉山将著》读书笔记---CH5
- 毕设题目:Matlab手势识别
- 多格式无水印录屏软件
- npm jdf压缩并上传静态文件到服务器
- Android多功能视频播放器GSYVideoPlayer开发流程
- 两个非常不错的在线pdf转epub的网站,没有上传大小限制
- 部分经济学术语英文简写
- Java以毫秒为单位返回秒表记录的流逝时间(即求一个程序段的运行时间)
- HTML下拉菜单怎么做成横向,JQuery实现绚丽的横向下拉菜单