java获取access token_微信java 开发4 access_token获取
首先你得有url吧
public final static String access_token_url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET";
/**
* 获取access_token
*
* @param appid 凭证
* @param appsecret 密钥
* @return
*/
public static AccessToken getAccessToken(String appid, String appsecret) {
AccessToken accessToken = null;
String requestUrl = access_token_url.replace("APPID", appid).replace("APPSECRET", appsecret);
JSONObject jsonObject = httpRequest(requestUrl, "GET", null);
// 如果请求成功
if (null != jsonObject) {
try {
accessToken = new AccessToken();
accessToken.setToken(jsonObject.getString("access_token"));
accessToken.setExpiresIn(jsonObject.getInt("expires_in"));
} catch (JSONException e) {
accessToken = null;
// 获取token失败
log.error("获取token失败 errcode:{} errmsg:{}", jsonObject.getInt("errcode"), jsonObject.getString("errmsg"));
}
}
return accessToken;
}
public class AccessToken {
// 接口访问凭证
private String token;
// 凭证有效期,单位:秒
private int expiresIn;
public String getToken() {
return token;
}
public void setToken(String token) {
this.token = token;
}
public int getExpiresIn() {
return expiresIn;
}
public void setExpiresIn(int expiresIn) {
this.expiresIn = expiresIn;
}
}
这个http请求代码是借网上的
/**
* 发起https请求并获取结果
*
* @param requestUrl 请求地址
* @param requestMethod 请求方式(GET、POST)
* @param outputStr 提交的数据
* @return JSONObject(通过JSONObject.get(key)的方式获取json对象的属性值)
*/
public static JSONObject httpRequest(String requestUrl, String requestMethod, String outputStr) {
JSONObject jsonObject = null;
StringBuffer buffer = new StringBuffer();
try {
// 创建SSLContext对象,并使用我们指定的信任管理器初始化
TrustManager[] tm = { new MyX509TrustManager() };
SSLContext sslContext = SSLContext.getInstance("SSL", "SunJSSE");
sslContext.init(null, tm, new java.security.SecureRandom());
// 从上述SSLContext对象中得到SSLSocketFactory对象
SSLSocketFactory ssf = sslContext.getSocketFactory();
URL url = new URL(requestUrl);
HttpsURLConnection httpUrlConn = (HttpsURLConnection) url.openConnection();
httpUrlConn.setSSLSocketFactory(ssf);
httpUrlConn.setDoOutput(true);
httpUrlConn.setDoInput(true);
httpUrlConn.setUseCaches(false);
// 设置请求方式(GET/POST)
httpUrlConn.setRequestMethod(requestMethod);
if ("GET".equalsIgnoreCase(requestMethod))
httpUrlConn.connect();
// 当有数据需要提交时
if (null != outputStr) {
OutputStream outputStream = httpUrlConn.getOutputStream();
// 注意编码格式,防止中文乱码
outputStream.write(outputStr.getBytes("UTF-8"));
outputStream.close();
}
// 将返回的输入流转换成字符串
InputStream inputStream = httpUrlConn.getInputStream();
InputStreamReader inputStreamReader = new InputStreamReader(inputStream, "utf-8");
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
String str = null;
while ((str = bufferedReader.readLine()) != null) {
buffer.append(str);
}
bufferedReader.close();
inputStreamReader.close();
// 释放资源
inputStream.close();
inputStream = null;
httpUrlConn.disconnect();
jsonObject = JSONObject.fromObject(buffer.toString());
} catch (ConnectException ce) {
log.error("Weixin server connection timed out.");
} catch (Exception e) {
log.error("https request error:{}", e);
}
return jsonObject;
}
import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;
import javax.net.ssl.X509TrustManager;
/**
* 证书信任管理器(用于https请求)
*
* @author yangwl
* @date 2016年5月11日17:16:05
*/
public class MyX509TrustManager implements X509TrustManager {
public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException {
}
public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException {
}
public X509Certificate[] getAcceptedIssuers() {
return null;
}
}
java获取access token_微信java 开发4 access_token获取相关推荐
- java获取access token_【Java示例】如何获取AccessToken
好多新注册的开发者表示不太清楚如何获取AccessToken.首先还是建议大家看官网文档 http://ai.baidu.com/docs#/Begin/top 小帅帮大家写一个Java调用的示例 首 ...
- Java红包退款_微信现金红包开发4(JAVA)
当请求结束后,会受到微信服务器返回给我们的结果 处理第三节中的reback //将接收到的返回信息 Map mso = new HashMap(); mso = XMLParser.getMapFro ...
- java ssm框架调用微信_Java开发SSM框架微信退款的实现
这篇文章是Java微信退款的教程,退款之前用户需要先进行支付,支付之后才可以使用退款.做到退款的同学应该已经是完成了支付了,我写的退款和支付的流程很相似只是所需的参数有所不同. String outT ...
- error java on syntax token_解决Java“syntax error on token enum”问题
本来我的问题是jsp中变量名命名和保留关键字重复了,如下图.无意中又找到下面的问题和解决方案作为笔记. 解决方法:修改变量名. ==================================== ...
- 微信企业号开发之地理位置获取
1.官方文档说明 上报地理位置事件 成员同意上报地理位置后,每次在进入应用会话时都会上报一次地理位置,或在进入应用会话后每5秒上报一次地理位置.企业可以在管理端修改应用的以上设置.上报地理位置时,微信 ...
- php里那些函数是获取字符串长度,【后端开发】PHP获取字符串长度函数strlen()函数...
在一些网站注册或者其他活动中,我们需要用户提交一些信息,对于这些信息会有一定的要求,比如用户注册信息有一些限制长度不能小于多少大于多少.这里我们就需要使用PHP自带函数进行获取操作. 获取字符串长度使 ...
- Service获取客户端IP地址(java)
Java代码 <strong>1.基于jax-ws开发的webservice获取客户端ip的方法[在代理类XXXDelegate添加如下代码]:</strong> import ...
- 企业微信三方开发(三):网页授权登录
其他链接 初识微信开发 企业微信三方开发:注册企业微信服务商 企业微信三方开发(一):回调验证及重要参数获取 企业微信三方开发(二):获取access_token 企业微信三方开发(三):网页授权登录 ...
- 企业微信三方开发(四):发送消息
其他链接 初识微信开发 企业微信三方开发:注册企业微信服务商 企业微信三方开发(一):回调验证及重要参数获取 企业微信三方开发(二):获取access_token 企业微信三方开发(三):网页授权登录 ...
最新文章
- 从命令行传递其他变量来制作
- SSM+solr 通过商品搜索学习solr的简单使用
- 前端学习(2230):react条件渲染实现登录二
- Apache Shiro<=1.2.4反序列化RCE漏洞
- 30天python从入门到精通_2019最新《Python从入门到精通之30天快速学Python教程 》
- 前端解析ipa、apk安装包信息 —— app-info-parser
- hg更新下载指定版本
- win7系统下C盘扩容
- 三个表内连接查询创建视图
- Error starting ApplicationContext.
- layui快速上手教程
- 台式计算机的安装顺序,台式电脑安装步骤教程
- SQL server 2008不允许保存更改的解决办法
- 【考研数学】九. 无穷级数
- 基于MATLAB的无刷直流调速系统的设计与仿真
- 猫咪藏在哪个房间python项目_铲屎官必读:猫咪为什么都喜欢藏在盒子里?
- 论文笔记—LeGO-LOAM: Lightweight and Ground-Optimized Lidar Odometry and Mapping on Variable Terrain
- 用计算机套路女孩电话,套路女孩子的情话抖音 套路女朋友的情话大全句子
- 〖Kindle Paperwhite〗升级、越狱、换屏保教程
- [转自“看雪论坛”]RtlAdjustPrivliege (http://bbs.pediy.com/showthread.php?t=76552)
热门文章
- Lua,Lua API,配置文件
- HDU 1151 Air Raid
- Ubuntu14.04搭建Oracle instantClient 11.2.0.4并配置cx_Oracle5.1.2
- web javascript开发 之Response.Write 与document.writ...
- 投诉索尼中国:欺骗消费!敲诈消费者!
- Prototype库终于有了文档了
- bootstrap checkbox_[推荐]icheck-bootstrap(漂亮的ckeckbox/radiobox)
- 【写作技巧】毕业论文结构一文通
- Oracle sql给一列赋值,简单的Oracle变量SQL赋值
- java 银行管理系统怎么储存账户信息_银行管理系统 实现用户注册 登录 存、取款 交易记录查询和修改用户信息等功能...