知識
不管是網(wǎng)站,軟件還是小程序,都要直接或間接能為您產(chǎn)生價值,我們在追求其視覺表現(xiàn)的同時,更側(cè)重于功能的便捷,營銷的便利,運營的高效,讓網(wǎng)站成為營銷工具,讓軟件能切實提升企業(yè)內(nèi)部管理水平和效率。優(yōu)秀的程序為后期升級提供便捷的支持!
您當(dāng)前位置>首頁 » 新聞資訊 » 小程序相關(guān) >
C#使用HttpClient如何判斷獲取小程序二維碼是否出錯
發(fā)表時間:2020-10-19
發(fā)布人:葵宇科技
瀏覽次數(shù):63
最開始的代碼是我從 Senparc.Weixin SDK 的源代碼中抄過來的,獲取小程序二維碼當(dāng)時的理解是就是從微信那邊把二維碼下載下來。這樣理解也沒錯,但是有時候下載小程序二維碼由于某些原因會出錯,這個時候就需要接口區(qū)分一下下載小程序是否成功了,那么下載小程序二維碼出錯的時候我們應(yīng)該怎么區(qū)分呢,那接下來的繼續(xù)往下看。
我們先來看下最初的代碼
public static byte[] Download(string url, string data)
{
HttpClient httpClient = new HttpClient();
HttpContent hc = new StringContent(data);
var ht = httpClient.PostAsync(url, hc);
ht.Wait();
var ft = ht.Result.Content.ReadAsByteArrayAsync();
ft.Wait();
var file = ft.Result;
return file;
}
代碼很簡單就是發(fā)送請求到微信那邊,然后把結(jié)果讀成 byte 數(shù)組,為什么讀 byte 數(shù)組,這里解釋一下,讀成 byte 數(shù)組之后再把 byte 數(shù)組轉(zhuǎn)成 base64 輸出給前端,這樣不用在服務(wù)器端保存圖片,很方便。
后面仔細(xì)閱讀微信的接口文檔發(fā)現(xiàn)它是會告訴你如何區(qū)分獲取小程序二維碼是否成功的
看到這里我就像能不能通過這個 contentType 來區(qū)分獲取小程序二維碼是否成功呢
于是有了現(xiàn)在的代碼
public static KmmResult<KeyValuePair<string, string>> Download(string url, string data)
{
var result = new KmmResult<KeyValuePair<string, string>>();
HttpClient httpClient = new HttpClient();
HttpContent hc = new StringContent(data);
var ht = httpClient.PostAsync(url, hc);
ht.Wait();
var content = ht.Result.Content;
if (content.Headers.ContentType.MediaType == "image/jpeg")
{
var byteArr = content.ReadAsByteArrayAsync();
byteArr.Wait();
byte[] codeData = byteArr.Result;
string base64Str = Convert.ToBase64String(codeData);
var pair = new KeyValuePair<string, string>("image", base64Str);
return result.Success(pair);
}
else
{
var resultStr = content.ReadAsStringAsync();
resultStr.Wait();
var pair = new KeyValuePair<string, string>("json", resultStr.Result);
return result.Success(pair);
}
}
先拿到響應(yīng)頭,然后根據(jù)返回的數(shù)據(jù)類型來判斷獲取小程序二維碼是否成功,成功的話返回的數(shù)據(jù)類型是圖片出錯的話返回的數(shù)據(jù)類型是 json 字符串,所以返回的結(jié)果集我用了一個鍵值對來保存,當(dāng)然你也可以用元祖,這個看個人喜好,后面再根據(jù)返回的結(jié)果來判斷是否需要處理。
獲取小程序二維碼出錯就把 json 字符串反序列化成對象,然后將微信返回的英文錯誤信息翻譯成中文返回給前端即可。
是不是很簡單呢?如果對你有幫助麻煩點個贊,好了今天的文章就到這了,我們下次再見。
相關(guān)案例查看更多
相關(guān)閱讀
- 搜索引擎自然排名
- 二叉樹
- 麗江小程序開發(fā)
- 云南軟件設(shè)計
- 昆明小程序設(shè)計
- 云南省住房建設(shè)廳網(wǎng)站
- 昆明做網(wǎng)站
- 小程序模板開發(fā)公司
- 百度排名
- 云南省建設(shè)廳網(wǎng)站
- 小程序的開發(fā)公司
- 昆明小程序定制開發(fā)
- 前端開發(fā)
- 汽車報廢回收軟件
- 云南旅游網(wǎng)站建設(shè)
- 小程序被騙退款成功
- 云南小程序開發(fā)制作
- 微信小程序開發(fā)入門課程
- 云南花農(nóng)小程序
- 網(wǎng)站建設(shè)公司地址
- 小程序開發(fā)排名前十名
- 百度小程序開發(fā)公司
- 電商網(wǎng)站建設(shè)
- 江蘇小程序開發(fā)
- 紅河小程序開發(fā)
- 網(wǎng)站建設(shè)
- 云南網(wǎng)站建設(shè)哪家強
- 汽車拆解系統(tǒng)
- 網(wǎng)站建設(shè)電話
- 云南小程序設(shè)計