溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

如何在java項(xiàng)目中獲取微信accessToken

發(fā)布時(shí)間:2021-02-18 15:33:41 來(lái)源:億速云 閱讀:339 作者:Leah 欄目:編程語(yǔ)言

今天就跟大家聊聊有關(guān)如何在java項(xiàng)目中獲取微信accessToken,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

具體內(nèi)容如下

package com.fengdi.lianmeng.task;

import com.fengdi.lianmeng.common.CacheHelper;
import com.fengdi.lianmeng.util.http.HttpRequest;
import com.fengdi.lianmeng.util.tencent.CloudSignHelper;
import com.fengdi.lianmeng.util.tencent.Interface;
import net.sf.json.JSONObject;
import org.quartz.JobExecutionContext;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
 * 定時(shí)獲取微信accessToken
 */

public class GetWeiXinAccessTokenTask {

 private static Logger logger = LoggerFactory.getLogger(GetWeiXinAccessTokenTask.class);

 /**
 * 每90分鐘,獲取一次微信accessToken
 */
 public void getWeiXinAccessToken (JobExecutionContext context){
 try{
  logger.info("獲取微信定時(shí)AccessToken任務(wù)啟動(dòng)了");

  //封裝請(qǐng)求數(shù)據(jù)
  String params = "grant_type=client_credential" + 
  "&secret=" + CloudSignHelper.wxspSecret + //小程序的 app_secret (在微信小程序管理后臺(tái)獲取)
  "&appid="+ CloudSignHelper.appid;//小程序唯一標(biāo)識(shí)appid (在微信小程序管理后臺(tái)獲取)
  //發(fā)送GET請(qǐng)求
  String result = HttpRequest.sendGet("https://api.weixin.qq.com/cgi-bin/token", params);
  // 解析相應(yīng)內(nèi)容(轉(zhuǎn)換成json對(duì)象)
  JSONObject jsonObject = JSONObject.fromObject(result);
  String accessToken = (String) jsonObject.get("access_token");

  CacheHelper.put("wxAccessToken", accessToken);//將accessToken放入緩存,用的時(shí)候取就行
  logger.info("獲取微信定時(shí)AccessToken任務(wù)結(jié)束了");
 }catch(Exception ex){
  logger.error("獲取微信定時(shí)AccessToken任務(wù)失敗." , ex);
 }
 }
}

GET請(qǐng)求

public static String sendGet(String url, String param) {
    String result = "";
    BufferedReader in = null;
    try {
      String urlNameString = url + "?" + param;
      URL realUrl = new URL(urlNameString);
      // 打開(kāi)和URL之間的連接
      URLConnection connection = realUrl.openConnection();
      // 設(shè)置通用的請(qǐng)求屬性
      connection.setRequestProperty("accept", "*/*");
      connection.setRequestProperty("connection", "Keep-Alive");
      connection.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
      // 建立實(shí)際的連接
      connection.connect();
      // 獲取所有響應(yīng)頭字段
      Map<String, List<String>> map = connection.getHeaderFields();
      // 遍歷所有的響應(yīng)頭字段
      for (String key : map.keySet()) {
        System.out.println(key + "--->" + map.get(key));
      }
      // 定義 BufferedReader輸入流來(lái)讀取URL的響應(yīng)
      in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
      String line;
      while ((line = in.readLine()) != null) {
        result += line;
      }
    } catch (Exception e) {
      System.out.println("發(fā)送GET請(qǐng)求出現(xiàn)異常!" + e);
      e.printStackTrace();
    }
    // 使用finally塊來(lái)關(guān)閉輸入流
    finally {
      try {
        if (in != null) {
          in.close();
        }
      } catch (Exception e2) {
        e2.printStackTrace();
      }
    }
    return result;
  }

看完上述內(nèi)容,你們對(duì)如何在java項(xiàng)目中獲取微信accessToken有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請(qǐng)關(guān)注億速云行業(yè)資訊頻道,感謝大家的支持。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI