关于.NET HttpClient方式获取微信小程序码(二维码
隨著微信小程序的火熱應用,市面上有關小程序開發的需求也多了起來。近來分析了一項生成有關生成微信小程序碼的需求——要求掃碼跳轉到小程序指定頁面(帶參數);看了下小程序官方文檔,以及網上的例子,未看到多少有價值的采用C#調用小程序接口生成小程序碼的例子,于是拾起多年前的代碼,略作分析嘗試,在此分享給有需要的人,并以此拋磚引玉。
此文以HttpClient方式示例,當然采用老舊的HttpWebRequest也可以,在此不作分析。
https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/qr-code/wxacode.createQRCode.html
https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/qr-code/wxacode.get.html
https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/qr-code/wxacode.getUnlimited.html
在此僅針對createwxaqrcode(二維碼)和get(小程序碼/葵花碼)講解,getUnlimited原理同;
兩者的接口地址分別如下:
https://api.weixin.qq.com/cgi-bin/wxaapp/createwxaqrcode?access_token=ACCESS_TOKEN
https://api.weixin.qq.com/wxa/getwxacode?access_token=ACCESS_TOKEN
由于請求小程序接口,其返回的是圖片二進制流,采用HttpClient方式時務必針對二進制數據進行處理;不多說,直接上關鍵代碼,簡要示例如下:
一共4個參數:
requestUri請求的接口URL;
filePath小程序碼(二維碼)存儲的絕對路徑;
jsonString提交的json數據對象;
webapiBaseUrl接口根路徑(可忽略)
由于騰訊接口要求,提交數據必須json對象,因此httpContent.Headers.ContentType = new MediaTypeHeaderValue("application/json"),此處尤為重要,不能像提交form表單一樣以字典方式提交;其次,處理二進制數據流采用以下形式處理并保存圖片;此處不贅述。
簡要封裝及調用示例如下:
new?NameSpace.GetQrCode(@"D:\QrCode.jpg", path:?"pages/index/index");
filePath為保存小程序碼(二維碼)圖片的絕對路徑,如Server.MapPath(savePath);path(小程序頁面地址)和width(二維碼寬度,默認430)均為可選參數,具體參見接口文檔;AccessToken為接口調用憑證;
注:由于騰訊限制,如果接口調用成功,會直接返回
總結
以上是生活随笔為你收集整理的关于.NET HttpClient方式获取微信小程序码(二维码的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Tuple VS ValueTuple
- 下一篇: asp.net ajax控件工具集 Au