微信工具类(获取access_token、post请求方法)
public class WechatUtil {
public final static Logger log = LoggerFactory.getLogger(WechatUtil.class);
/**
* 发送微信统一消息api接口
*/
public static final String WechatUniformMessagePostUrl = "https://api.weixin.qq.com/cgi-bin/message/wxopen/template/uniform_send?access_token=";
/**
* 获取access_token api接口
*/
public static final String WechatAccessTokenPostUrl = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential";
/**
* 获取openid api接口
*/
public static final String WechatGetOpenIdPostUrl = "https://api.weixin.qq.com/sns/jscode2session?grant_type=authorization_code";
/**
* 获取微信access_token
* @param appId
* @param appSecret
* @return
*/
public static String getWechatAccessToken(String appId,String appSecret){
if(!StringUtils.isBlank(appId)&&!StringUtils.isBlank(appSecret)){
NameValuePair[] arr = new NameValuePair[]{new NameValuePair("appid",appId),new NameValuePair("secret",appSecret)};
try {
String result = HttpUtil.post(WechatAccessTokenPostUrl, arr);
log.debug("请求微信接口获取access_token的回显:[{}]",result);
if(!StringUtils.isBlank(result) && result.contains(SystemConstant.WECHAT_RESPONSE_ACCESS_TOKEN_EXPIRES_IN)){//7200
JSONObject jo = JSON.parseObject(result);
String successCode = jo.getString(SystemConstant.WECHAT_RESPONSE_ACCESS_TOKEN_EXPIRES_IN);
if(SystemConstant.WECHAT_RESPONSE_ACCESS_TOKEN_SUCCESS.equals(successCode)){
//success
String access_token = jo.getString(SystemConstant.WECHAT_RESPONSE_ACCESS_TOKEN);
log.debug("获取access_token:[{}]",access_token);
return access_token;
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
return null;
}
/**
* 请求方法
* @param requestUrl
* @param requestMethod
* @param outputStr
* @return
*/
public static String httpsRequest(String requestUrl, String requestMethod, String outputStr) {
try {
URL url = new URL(requestUrl);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setDoOutput(true);
conn.setDoInput(true);
conn.setUseCaches(false);
// 设置请求方式(GET/POST)
conn.setRequestMethod(requestMethod);
conn.setRequestProperty("content-type", "application/json");
// 当outputStr不为null时向输出流写数据
if (null != outputStr) {
OutputStream outputStream = conn.getOutputStream();
// 注意编码格式
outputStream.write(outputStr.getBytes("UTF-8"));
outputStream.close();
}
// 从输入流读取返回内容
InputStream inputStream = conn.getInputStream();
InputStreamReader inputStreamReader = new InputStreamReader(inputStream, "utf-8");
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
String str = null;
StringBuffer buffer = new StringBuffer();
while ((str = bufferedReader.readLine()) != null) {
buffer.append(str);
}
// 释放资源
bufferedReader.close();
inputStreamReader.close();
inputStream.close();
inputStream = null;
conn.disconnect();
return buffer.toString();
} catch (ConnectException ce) {
ce.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}
- 获取微信用户openid的三种方法#ACCESS_TOKEN
- 微信接口开发1--向微信发送请求--获取access_token
- 新浪授权登录 正确的获取access_token (都不能用curl请求,包括微信授权登录 ) 要用file_get_contents
- PHP定时任务获取微信access_token的方法
- 微信公众号:1-IDHTTP控件:GET/POST 请求获取access_token
- 关于微信获取access_token在同一服务器覆盖的解决方法
- 浅析 salesforce rest 集成方式中的 get 和 post 请求(续) ---- 获取salesforce access_token
- 微信公共平台接入之:网页授权(微信授权,微信access_token获取,获取微信用户信息),微信开发者工具使用,微信公众平台测试号申请接入
- 微信开发者-主动请求-实际开发-(3)获取access_token(C#)
- 微信java开发3——获取access_token
- 微信开发前接入和获取access_token
- java微信获取access_token(java微信开发学习笔记4)
- php发送get、post请求的几种方法 以及获取内容
- 微信获取access_token,access_token有什么意义,他的时长是多少
- android xUtils3网络请求工具post、get方法 根据不同格式(UTF-8等)读取返回信息
- 微信公众号开发-开发环境搭建并通过java代码获取微信access_token
- java微信接口之——获取access_token
- vue cli引入微信sdk,完成微信接口调用——获取微信access_token和jsapi_ticket(六)
- request请求获取参数的实现方法(post和get两种方式)
- java微信签名,验证微信发送的signature,还有获取access_token和ticket