欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

0 背景說明

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

0.1 獲取AccessToken

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

參考小程序文檔:auth.getAccessToken

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

接口:

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

參數(shù):

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

返回值:

格式如下:

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

0.2 數(shù)據(jù)庫查詢

參考小程序文檔:databaseQuery

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

接口:

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

參數(shù):

接口地址中加入AccessToken

請求參數(shù):

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

格式如下:

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

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

0.3 文件下載

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

發(fā)送post請求獲取

接口:

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

參數(shù):

  • 接口地址中加入AccessToken

請求參數(shù):

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

格式如下:

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

2. 簡單的封裝

簡單的封裝了發(fā)送請求的方法

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

/// <summary>
/// 發(fā)送http Get請求
/// </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";//鏈接類型
    return request.GetResponse() as HttpWebResponse;
}

/// <summary>
/// 發(fā)送http Post請求
/// </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對象中提取響應(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)為匿名對象
/// </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. 簡單測試

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

/// <summary>
/// 獲取access_token
/// </summary>
/// <returns></returns>
public static string GetAccessToken()
{
    // 通過Get請求獲取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>
///  查詢數(shù)據(jù)
/// </summary>
/// <param name="queryString">形如: $"{{\"env\":\"小程序環(huán)境id\", \"query\": \"db.collecti(\\\"數(shù)據(jù)集合名稱\\\").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>
/// 通過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. 參考文檔

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

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

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

相關(guān)文章

  • C#查找素數(shù)實現(xiàn)方法

    C#查找素數(shù)實現(xiàn)方法

    這篇文章主要介紹了C#查找素數(shù)實現(xiàn)方法,程序中有很多使用的功能模塊,非常適合C#初學(xué)者學(xué)習(xí)借鑒,需要的朋友可以參考下
    2014-08-08
  • C#中字符串與字節(jié)數(shù)組的轉(zhuǎn)換方式

    C#中字符串與字節(jié)數(shù)組的轉(zhuǎn)換方式

    這篇文章介紹了C#中字符串與字節(jié)數(shù)組的轉(zhuǎn)換方式,文中通過示例代碼介紹的非常詳細。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-05-05
  • C#多線程TPL常見操作誤區(qū)與異常處理

    C#多線程TPL常見操作誤區(qū)與異常處理

    本文詳細講解了C#多線程TPL常見操作誤區(qū)與異常處理,文中通過示例代碼介紹的非常詳細。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-03-03
  • Unity技術(shù)手冊之Toggle切換使用實例

    Unity技術(shù)手冊之Toggle切換使用實例

    這篇文章主要為大家介紹了Unity技術(shù)手冊之Toggle切換使用實例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-11-11
  • 使用 BenchmarkDotNet 對 C# 代碼進行基準(zhǔn)測試

    使用 BenchmarkDotNet 對 C# 代碼進行基準(zhǔn)測試

    這篇文章主要介紹了使用 BenchmarkDotNet 對 C# 代碼進行基準(zhǔn)測試,幫助大家更好的理解和學(xué)習(xí)使用c#,感興趣的朋友可以了解下
    2021-03-03
  • C# 圖片與Base64碼的相互轉(zhuǎn)化問題(代碼詳解)

    C# 圖片與Base64碼的相互轉(zhuǎn)化問題(代碼詳解)

    這篇文章主要介紹了C# 圖片與Base64碼的相互轉(zhuǎn)化的代碼,通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-03-03
  • C#多種操作excel的方法比較

    C#多種操作excel的方法比較

    本文詳細講解了C#多種操作excel的方法,文中通過示例代碼介紹的非常詳細。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-12-12
  • C#遍歷List并刪除某個元素的方法

    C#遍歷List并刪除某個元素的方法

    這篇文章主要介紹了C#遍歷List并刪除某個元素的方法,實例分析了正序與倒序遍歷list及刪除元素的使用技巧,需要的朋友可以參考下
    2015-02-02
  • DevExpress實現(xiàn)為TextEdit設(shè)置水印文字的方法

    DevExpress實現(xiàn)為TextEdit設(shè)置水印文字的方法

    這篇文章主要介紹了DevExpress實現(xiàn)為TextEdit設(shè)置水印文字的方法,對C#程序設(shè)計人員來說是一個很實用的技巧,需要的朋友可以參考下
    2014-08-08
  • C#利用反射實現(xiàn)多數(shù)據(jù)庫訪問

    C#利用反射實現(xiàn)多數(shù)據(jù)庫訪問

    本文詳細講解了C#利用反射實現(xiàn)多數(shù)據(jù)庫訪問的方法,文中通過示例代碼介紹的非常詳細。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-03-03

最新評論