最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#獲取微信小程序的云數(shù)據(jù)庫(kù)中數(shù)據(jù)的示例代碼

 更新時(shí)間:2021年08月31日 09:28:09   作者:shanzm  
本文主要介紹了C#獲取微信小程序的云數(shù)據(jù)庫(kù)中數(shù)據(jù)的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

0 背景說(shuō)明

試水小程序,實(shí)現(xiàn)訪客登記,現(xiàn)有.NET程序需要獲取該小程序的數(shù)據(jù)

0.1 獲取AccessToken

調(diào)用絕大多數(shù)后臺(tái)接口時(shí)都需使用 access_token

參考小程序文檔:auth.getAccessToken

發(fā)送Get請(qǐng)求,獲取AccessToken

接口:

  • https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET

參數(shù):

  • appid:小程序ID
  • secret:注冊(cè)時(shí)產(chǎn)生的密鑰,可以重置
  • 兩個(gè)參數(shù)信息可以在后臺(tái)->開(kāi)發(fā)管理->開(kāi)發(fā)設(shè)置->開(kāi)發(fā)者設(shè)置中查看

返回值:

格式如下:

    {"access_token":"ACCESS_TOKEN","expires_in":7200}
  • access_token:獲取到的憑證
  • expires_in:憑證的有效時(shí)間,單位:秒

0.2 數(shù)據(jù)庫(kù)查詢(xún)

參考小程序文檔:databaseQuery

發(fā)送Post請(qǐng)求,獲取數(shù)據(jù)

接口:

  • POST https://api.weixin.qq.com/tcb/databasequery?access_token=ACCESS_TOKEN

參數(shù):

接口地址中加入AccessToken

請(qǐng)求參數(shù):

  • env:云環(huán)境ID
  • query:數(shù)據(jù)庫(kù)操作語(yǔ)句

格式如下:

{ "env":"小程序環(huán)境", "query": "db.collection(\"集合名稱(chēng)\").where({done:true}).limit(10).skip(1).get()" }

query中應(yīng)使用limit()限制單次拉取的數(shù)量,默認(rèn)10條。

0.3 文件下載

參考小程序文檔:獲取文件下載鏈接

發(fā)送post請(qǐng)求獲取

接口:

  • POST https://api.weixin.qq.com/tcb/batchdownloadfile?access_token=ACCESS_TOKEN

參數(shù):

  • 接口地址中加入AccessToken

請(qǐng)求參數(shù):

  • env:云環(huán)境ID
  • file_list:文件列表

格式如下:

{ "env": "云環(huán)境ID", "file_list": [ { "fileid":"文件ID", "max_age":7200 } ] }

2. 簡(jiǎn)單的封裝

簡(jiǎn)單的封裝了發(fā)送請(qǐng)求的方法

//需要添加的命名空間
using Newtonsoft.Json;
using System.IO;

/// <summary>
/// 發(fā)送http Get請(qǐng)求
/// </summary>
/// <param name="url"></param>
/// <returns></returns>
public static HttpWebResponse GetRequest(string url)
{
    HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest;
    request.Method = "GET";
    request.ContentType = "application/x-www-form-urlencoded";//鏈接類(lèi)型
    return request.GetResponse() as HttpWebResponse;
}

/// <summary>
/// 發(fā)送http Post請(qǐng)求
/// </summary>
/// <returns></returns>
public static HttpWebResponse PostRequest(string url, string messsage)
{
    byte[] byteData = Encoding.UTF8.GetBytes(messsage);
    HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(url);
    webRequest.Method = "POST";
    webRequest.ContentType = "application/json;charset=UTF-8";
    webRequest.ContentLength = byteData.Length;
    using (Stream stream = webRequest.GetRequestStream())
    {
        stream.Write(byteData, 0, byteData.Length);
    }
    HttpWebResponse response = (HttpWebResponse)webRequest.GetResponse();
    return response;
}

/// <summary>
/// 從HttpWebResponse對(duì)象中提取響應(yīng)的數(shù)據(jù)轉(zhuǎn)換為字符串
/// </summary>
/// <param name="webresponse"></param>
/// <returns></returns>
public static string HttpWebResponseToString(HttpWebResponse webresponse)
{
    using (Stream s = webresponse.GetResponseStream())
    {
        StreamReader reader = new StreamReader(s, Encoding.UTF8);
        return reader.ReadToEnd();
    }
}

/// <summary>
/// Json字符串轉(zhuǎn)為匿名對(duì)象
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="json"></param>
/// <param name="anonymousTypeObject"></param>
/// <returns></returns>
public static T DesAnonymousType<T>(string json, T anonymousTypeObject)
{
    return JsonConvert.DeserializeAnonymousType(json, anonymousTypeObject);
}

3. 簡(jiǎn)單測(cè)試

發(fā)送請(qǐng)求獲取數(shù)據(jù)

/// <summary>
/// 獲取access_token
/// </summary>
/// <returns></returns>
public static string GetAccessToken()
{
    // 通過(guò)Get請(qǐng)求獲取access_token
    HttpWebResponse httpWebResponse = GetRequest("https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credentiaappid=小程序ID&secret=小程序密鑰");
    string resultJson = HttpWebResponseToString(httpWebResponse);
    var resultObj = DesAnonymousType(resultJson, new { access_token = "", expires_in = "" });
    return resultObj.access_token;
}

/// <summary>
///  查詢(xún)數(shù)據(jù)
/// </summary>
/// <param name="queryString">形如: $"{{\"env\":\"小程序環(huán)境id\", \"query\": \"db.collecti(\\\"數(shù)據(jù)集合名稱(chēng)\\\").where({{集合中字段:\\\"集合中字段值\\\"}}).limit(10).get()\"}}"</param>
/// <returns></returns>
public static string GetData(string queryString)
{
    string accessToken = GetAccessToken();
    HttpWebResponse httpWebResponse = PostRequest("https://api.weixin.qq.com/tcb/databasequery?access_token=" + accessTokenqueryString);
    string data = HttpWebResponseToString(httpWebResponse);
    return data;
}


/// <summary>
/// 通過(guò)FileId獲取文件下載URL
/// </summary>
/// <param name="queryString">形如:$"{{\"env\": \"環(huán)境ID\",\"file_list\": [{{\"fileid\":文件ID\",\"max_age\":7200 }}]}}"</param>
/// <returns></returns>
public static string GetDownFileUrl(string queryString)
{
    string accessToken = GetAccessToken();
    string url = $"https://api.weixin.qq.com/tcb/batchdownloadfile?access_token={accessToken}";
    HttpWebResponse httpWebResponse = PostRequest(url, queryString);
    string downFileUrl = HttpWebResponseToString(httpWebResponse);
    return downFileUrl;
}

4. 參考文檔

小程序官方文檔:云開(kāi)發(fā)->數(shù)據(jù)庫(kù)查詢(xún)記錄

小程序官方文檔:接口調(diào)用憑證->getAccessToken

到此這篇關(guān)于C#獲取微信小程序的云數(shù)據(jù)庫(kù)中數(shù)據(jù)的示例代碼的文章就介紹到這了,更多相關(guān)C#獲取小程序數(shù)據(jù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 詳解C#中SqlParameter的作用與用法

    詳解C#中SqlParameter的作用與用法

    本篇文章主要介紹了C#中SqlParameter的作用與用法,因?yàn)橥ㄟ^(guò)SQL語(yǔ)句的方式,有時(shí)候存在腳本注入的危險(xiǎn),所以在大多數(shù)情況下不建議用拼接SQL語(yǔ)句字符串方式,希望通過(guò)SqlParameter實(shí)現(xiàn)來(lái)實(shí)現(xiàn)對(duì)數(shù)據(jù)的操作。
    2016-12-12
  • C#實(shí)現(xiàn)設(shè)置Excel表格中文本對(duì)齊方式和格式

    C#實(shí)現(xiàn)設(shè)置Excel表格中文本對(duì)齊方式和格式

    這篇文章主要為大家詳細(xì)介紹了如何在.NET 程序中通過(guò)C# 設(shè)置Excel單元格中文本的對(duì)齊方式,方向以及換行,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2025-04-04
  • C# 將透明圖片的非透明區(qū)域轉(zhuǎn)換成Region的實(shí)例代碼

    C# 將透明圖片的非透明區(qū)域轉(zhuǎn)換成Region的實(shí)例代碼

    以下代碼實(shí)現(xiàn)將一張帶透明度的png圖片的非透明部分轉(zhuǎn)換成Region輸出的方法,有需要的朋友可以參考一下
    2013-10-10
  • 詳解WPF中用戶(hù)控件和自定義控件的使用

    詳解WPF中用戶(hù)控件和自定義控件的使用

    無(wú)論是在WPF中還是WinForm中,都有用戶(hù)控件(UserControl)和自定義控件(CustomControl),這兩種控件都是對(duì)已有控件的封裝,實(shí)現(xiàn)功能重用。但是兩者還是有一些區(qū)別,本文對(duì)這兩種控件進(jìn)行講解
    2023-03-03
  • c#反射機(jī)制學(xué)習(xí)和利用反射獲取類(lèi)型信息

    c#反射機(jī)制學(xué)習(xí)和利用反射獲取類(lèi)型信息

    反射(Reflection)是.NET中的重要機(jī)制,通過(guò)放射,可以在運(yùn)行時(shí)獲得.NET中每一個(gè)類(lèi)型(包括類(lèi)、結(jié)構(gòu)、接口和枚舉等)的成員,包括方法、屬性、事件,以及構(gòu)造函數(shù)等,還可以獲得每個(gè)成員的名稱(chēng)、限定符和參數(shù)等,有了反射,即可對(duì)每一個(gè)類(lèi)型了如指掌
    2014-01-01
  • C#實(shí)現(xiàn)繪制鼠標(biāo)的示例代碼

    C#實(shí)現(xiàn)繪制鼠標(biāo)的示例代碼

    這篇文章主要為大家詳細(xì)介紹了如何利用C#實(shí)現(xiàn)繪制鼠標(biāo)的效果,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)C#有一定的幫助,感興趣的小伙伴可以跟隨小編一起了解一下
    2022-12-12
  • 在.net應(yīng)用程序中運(yùn)行其它EXE文件的方法

    在.net應(yīng)用程序中運(yùn)行其它EXE文件的方法

    這篇文章主要介紹了在.net應(yīng)用程序中運(yùn)行其它EXE文件的方法,涉及C#進(jìn)程操作的相關(guān)技巧,需要的朋友可以參考下
    2015-05-05
  • C# 語(yǔ)音功能的實(shí)現(xiàn)方法

    C# 語(yǔ)音功能的實(shí)現(xiàn)方法

    最近看了一些資料,是c#實(shí)現(xiàn)語(yǔ)音功能的?,F(xiàn)在就簡(jiǎn)單的講一下怎么實(shí)現(xiàn)。
    2013-03-03
  • C#判斷頁(yè)面中的多個(gè)文本框輸入值是否有重復(fù)的實(shí)現(xiàn)方法

    C#判斷頁(yè)面中的多個(gè)文本框輸入值是否有重復(fù)的實(shí)現(xiàn)方法

    這篇文章主要介紹了C#判斷頁(yè)面中的多個(gè)文本框輸入值是否有重復(fù)的實(shí)現(xiàn)方法,是一個(gè)非常簡(jiǎn)單實(shí)用的技巧,需要的朋友可以參考下
    2014-10-10
  • c# 二分查找算法

    c# 二分查找算法

    折半搜索,也稱(chēng)二分查找算法、二分搜索,是一種在有序數(shù)組中查找某一特定元素的搜索算法
    2013-10-10

最新評(píng)論

富裕县| 临武县| 息烽县| 临安市| 静乐县| 乐昌市| 于田县| 孝义市| 武清区| 五峰| 高阳县| 手游| 青河县| 甘洛县| 宝丰县| 新绛县| 西青区| 合川市| 九江市| 正宁县| 清原| 许昌县| 抚宁县| 长葛市| 阜城县| 禄丰县| 东港市| 潮州市| 广平县| 新密市| 陇西县| 山西省| 依兰县| 凤凰县| 庄浪县| 龙岩市| 来宾市| 达孜县| 阿拉尔市| 嵊泗县| 陆丰市|