91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

SpringBoot小程序推送信息怎么實現

發布時間:2022-04-18 10:39:15 來源:億速云 閱讀:353 作者:iii 欄目:開發技術

這篇文章主要介紹了SpringBoot小程序推送信息怎么實現的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇SpringBoot小程序推送信息怎么實現文章都會有所收獲,下面我們一起來看看吧。

1.小程序推送信息列如我們去餐廳等位有預約提醒,剩余桌數

首先申請一個小程序,微信開放平臺:小程序

2.申請小程序信息,申請信息模板

appid

AppSecret

SpringBoot小程序推送信息怎么實現

3.根據開發文檔開發

subscribeMessage.send | 微信開放文檔

4.代碼如下:

引入依賴

 <dependency>
        <groupId>org.apache.httpcomponents</groupId>
        <artifactId>httpclient</artifactId>
        <version>4.5.2</version>
    </dependency>

先準備一個HTTP工具類Z

import org.apache.http.HttpEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.conn.ssl.NoopHostnameVerifier;
import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
import org.apache.http.conn.ssl.TrustSelfSignedStrategy;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.ssl.SSLContexts;
import org.apache.http.util.EntityUtils;
 
import java.io.IOException;
 
/**
 * @author lrx
 * @description: TODO
 * @date 2021/3/9 9:50
 */
public class HttpClientUtils {
    //Http協議GET請求
    public static String httpGet(String url) throws IOException {
        //初始化HttpClient
        CloseableHttpClient httpClient = HttpClients.createDefault();
        //創建HttpGet
        HttpGet httpGet = new HttpGet(url);
        //發起請求,獲取response對象
        CloseableHttpResponse response = httpClient.execute(httpGet);
        //獲取請求狀態碼
        //response.getStatusLine().getStatusCode();
        //獲取返回數據實體對象
        HttpEntity entity = response.getEntity();
        //轉為字符串
        String result = EntityUtils.toString(entity, "UTF-8");
        return result;
 
    }
 
    //Http協議Post請求
    public static String httpPost(String url, String json) throws Exception {
        //初始HttpClient
        CloseableHttpClient httpClient = HttpClients.createDefault();
        //創建Post對象
        HttpPost httpPost = new HttpPost(url);
        //設置Content-Type
       /* httpPost.setHeader("Content-Type", "application/x-www-form-urlencoded");*/
        StringEntity se = new StringEntity(json,"UTF-8");
        se.setContentType("application/x-www-form-urlencoded");
        httpPost.setEntity(se);
        //發起請求,獲取response對象
        CloseableHttpResponse response = httpClient.execute(httpPost);
        //獲取請求碼
        //response.getStatusLine().getStatusCode();
        //獲取返回數據實體對象
        HttpEntity entity = response.getEntity();
        //轉為字符串
        String result = EntityUtils.toString(entity, "UTF-8");
        return result;
    }
 
    //Https協議Get請求
    public static String httpsGet(String url) throws Exception {
        CloseableHttpClient hp = createSSLClientDefault();
        HttpGet hg = new HttpGet(url);
        CloseableHttpResponse response = hp.execute(hg);
        HttpEntity entity = response.getEntity();
        String content = EntityUtils.toString(entity, "UTF-8");
        hp.close();
        return content;
    }
 
    //Https協議Post請求
    public static String httpsPost(String url, String json) throws Exception {
        CloseableHttpClient hp = createSSLClientDefault();
        HttpPost httpPost = new HttpPost(url);
        httpPost.setHeader("Content-Type", "application/json");
        httpPost.setEntity(new StringEntity(json));
        CloseableHttpResponse response = hp.execute(httpPost);
        HttpEntity entity = response.getEntity();
        String content = EntityUtils.toString(entity, "UTF-8");
        hp.close();
        return content;
    }
 
 
    public static CloseableHttpClient createSSLClientDefault() throws Exception {
        //如果下面的方法證書還是不過,報錯的話試試下面第二種
        /* SSLContext sslContext = new SSLContextBuilder().loadTrustMaterial(null, new TrustStrategy(){
        //信任所有
        public boolean isTrusted(X509Certificate[] chain, String authType) throws CertificateException {
        return true;
        }
        }).build();
        SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory(sslContext);
        return HttpClients.custom().setSSLSocketFactory(sslsf).build();*/
 
        SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory(
                SSLContexts.custom().loadTrustMaterial(null, new TrustSelfSignedStrategy()).build(),
                NoopHostnameVerifier.INSTANCE);
        return HttpClients.custom().setSSLSocketFactory(sslsf).build();
    }
}

測試代碼

import com.alibaba.fastjson.JSONObject;
 
import java.io.IOException;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
 
/**
 * @author lrx
 * @description: TODO  小程序推送
 * @date 2022/4/11 13:32
 */
public class TestXCXMain {
    public static void main(String[] args) throws Exception {
        String appid = "";  //appid
        String secret = "";  //secret 
        //登錄鏈接獲取token
        String loginUrl = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=" + appid + "&secret=" + secret;
        Map<String, Object> payloadMap = JSONObject.parseObject(HttpClientUtils.httpGet(loginUrl));
        String token = null;
        if (payloadMap.containsKey("access_token")) {
            token = payloadMap.get("access_token").toString();
        }
        System.out.println("獲取token" + token);
        Map<String, Object> qqMap = new HashMap<String, Object>();
        qqMap.put("touser", "openid");  //要推送的openid
        qqMap.put("template_id", "");   //信息模板id
        qqMap.put("page", "index");
        qqMap.put("miniprogram_state", "developer");
        qqMap.put("lang", "zh_CN");
        //封裝信息
        Map<String, Object> dataMap = new HashMap<String, Object>();
        Map<String, String> valueMap1 = new HashMap<String, String>();
        valueMap1.put("value", "成功");
        Map<String, String> valueMap2 = new HashMap<String, String>();
        valueMap2.put("value", "成功");
        dataMap.put("thing3", valueMap1);
        dataMap.put("thing1", valueMap2);
        qqMap.put("data", dataMap);
        //發送
        Map<String, Object> payloadMapData = JSONObject.parseObject(HttpClientUtils.httpPost("https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token="+token,JSONObject.toJSONString(qqMap)));
        if (payloadMapData.containsKey("errCode")) {
            System.out.println("返回code碼:"+payloadMapData.get("errCode").toString());
        }
    }
}

5.推送結果

SpringBoot小程序推送信息怎么實現

關于“SpringBoot小程序推送信息怎么實現”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“SpringBoot小程序推送信息怎么實現”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

大埔县| 左权县| 苗栗县| 虞城县| 姜堰市| 江川县| 郯城县| 伽师县| 昭觉县| 辽阳市| 昭平县| 曲阳县| 宝清县| 周口市| 察雅县| 集安市| 寿光市| 巴里| 武穴市| 民丰县| 武陟县| 涪陵区| 台东市| 江孜县| 龙胜| 金堂县| 新巴尔虎右旗| 慈利县| 义乌市| 阜城县| 灵寿县| 嘉义市| 从化市| 读书| 当雄县| 潢川县| 永嘉县| 江孜县| 临沭县| 班玛县| 乌拉特中旗|