Java 微信公众号(二)——获取access_token
来源:互联网 发布:ppt无法编辑数据 编辑:程序博客网 时间:2024/06/06 12:32
通过阅读微信开发者文档会发现——>access_token是公众号的全局唯一接口调用凭据,公众号调用各接口时都需使用access_token。开发者需要进行妥善保存。access_token的存储至少要保留512个字符空间。access_token的有效期目前为2个小时,需定时刷新,重复获取将导致上次获取的access_token失效。
在获取access_token时使用的是get请求,那么也就是说我们需要在通过httpclient发送以个get请求
最后返回的是一个json格式
下面直接贴入代码
此时已经可以获取到access_token了,但是还不满足我们的开发使用,因为在微信对于access_token有时间要求,access_token会在两个小时后失效,并且一天只能调用2000次,所以我们需要对代码进行一个封装,下面是真正使用的
package com.website.commons.web.utils;import java.io.IOException;import org.apache.http.HttpResponse;import org.apache.http.HttpStatus;import org.apache.http.client.ClientProtocolException;import org.apache.http.client.HttpClient;import org.apache.http.client.methods.HttpGet;import org.apache.http.impl.client.DefaultHttpClient;import org.apache.http.util.EntityUtils;import org.json.JSONObject;public class Constant {public static final String APPID = "你的APPID";public static final String APPSECRET = "你的APPSECRET";/**全局token 所有与微信有交互的前提 */public static String ACCESS_TOKEN;/**全局token上次获取事件 */public static long LASTTOKENTIME;/** * 获取全局token方法 * 该方法通过使用HttpClient发送http请求,HttpGet()发送请求 * 微信返回的json中access_token是我们的全局token */public static synchronized void getAccess_token(){if(ACCESS_TOKEN == null || System.currentTimeMillis() - LASTTOKENTIME > 7000*1000){try {//请求access_token地址String url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=wx9c3336b0bdb29172&secret=e22ea5453c6c10326045a00112c873f4";//创建提交方式HttpGet httpGet = new HttpGet(url);//获取到httpclienHttpClient httpClient = new DefaultHttpClient();//发送请求并得到响应HttpResponse response = httpClient.execute(httpGet);//判断请求是否成功if(response.getStatusLine().getStatusCode() == HttpStatus.SC_OK){//将得到的响应转为String类型String str = EntityUtils.toString(response.getEntity(), "utf-8");//字符串转jsonJSONObject jsonObject = new JSONObject(str);//输出access_tokenSystem.out.println((String) jsonObject.get("access_token"));//给静态变量赋值,获取到access_tokenACCESS_TOKEN = (String) jsonObject.get("access_token");//给获取access_token时间赋值,方便下此次获取时进行判断LASTTOKENTIME = System.currentTimeMillis();}} catch (ClientProtocolException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}public static void main(String[] args) {getAccess_token();}}ok!代码完工,根据大家的编码风格可以做改动
阅读全文
1 0
- Java 微信公众号(二)——获取access_token
- 微信开发学习总结(二)—微信开发入门(公众号接入以及access_token获取)
- 微信公众号开发——获取access_token
- PHP微信公众平台接口(二)——获取access_token
- java微信公众平台获取access_token
- 微信公众号开发之获取access_token[java版]
- java中获取微信公众号的access_token
- 用java开发微信公众号:公众号接入和access_token管理(二)
- 用java开发微信公众号:公众号接入和access_token管理(二)
- 微信公众号开发(三)——获取 Access_Token
- MVC 微信公众号 获取 access_token
- 微信公众号开发获取access_token
- 微信公众号获取access_token
- 4.微信公众号获取Access_token
- 微信公众号开发-获取access_token
- php 获取微信公众号access_token
- 微信公众号获取access_token
- 微信公众号入门笔记(四)获取access_token
- 《Spring设计思想》AOP实现原理(基于JDK和基于CGLIB)
- Spring中如何向Bean注入系统属性或环境变量
- 第四周—项目1—建立单链表
- 修改linux最大文件句柄数
- Unable to load dynamic library ...\php_oci8.dll'
- Java 微信公众号(二)——获取access_token
- 关于Icon,Image,ImageIcon的简单的对比参考
- 解决Hessian调用重载方法报错问题(HessianProtocolException)
- spring面试大全
- SQL语句遍历树结构的数据表
- HTML5触摸事件(touchstart、touchmove和touchend)
- npm修改淘宝源
- C++学习之STL(standard Template Libary)::list
- VMware克隆后的配置