包含透過HttpClient發(fā)起get或post請求的方法,所有呼叫微信介面的操作都經(jīng)由此類。話不多說,直接上程式碼:
2014-10-31程式碼更新:微信SSL安全策略調(diào)整,關(guān)掉掉SSLv2、SSLv3版本支持,不再支援部分使用SSLv2、 SSLv3或更低版本的客戶端調(diào)用。
public?class?HttpClientHelper ????{ ????????///?<summary> ????????///?get請求 ????????///?</summary> ????????///?<param name="url"></param> ????????///?<returns></returns> ????????public?static?string?GetResponse(string?url) ????????{ ????????????if?(url.StartsWith("https")) ????????????????System.Net.ServicePointManager.SecurityProtocol?=?SecurityProtocolType.Tls; ????????????HttpClient?httpClient?=?new?HttpClient(); ????????????httpClient.DefaultRequestHeaders.Accept.Add( ???????????????new?MediaTypeWithQualityHeaderValue("application/json")); ????????????HttpResponseMessage?response?=?httpClient.GetAsync(url).Result; ????????????if?(response.IsSuccessStatusCode) ????????????{ ????????????????string?result?=?response.Content.ReadAsStringAsync().Result; ????????????????return?result; ????????????} ????????????return?null; ????????} ????????public?static?T?GetResponse<T>(string?url) ????????????where?T?:?class,new() ????????{ ????????????if?(url.StartsWith("https")) ????????????????System.Net.ServicePointManager.SecurityProtocol?=?SecurityProtocolType.Tls; ????????????HttpClient?httpClient?=?new?HttpClient(); ????????????httpClient.DefaultRequestHeaders.Accept.Add( ???????????????new?MediaTypeWithQualityHeaderValue("application/json")); ????????????HttpResponseMessage?response?=?httpClient.GetAsync(url).Result; ????????????T?result?=?default(T); ????????????if?(response.IsSuccessStatusCode) ????????????{ ????????????????Task<string>?t?=?response.Content.ReadAsStringAsync(); ????????????????string?s?=?t.Result; ????????????????result?=?JsonConvert.DeserializeObject<T>(s); ????????????} ????????????return?result; ????????} ????????///?<summary> ????????///?post請求 ????????///?</summary> ????????///?<param name="url"></param> ????????///?<param name="postData">post數(shù)據(jù)</param> ????????///?<returns></returns> ????????public?static?string?PostResponse(string?url,?string?postData) ????????{ ????????????if?(url.StartsWith("https")) ????????????????System.Net.ServicePointManager.SecurityProtocol?=?SecurityProtocolType.Tls; ????????????HttpContent?httpContent?=?new?StringContent(postData); ????????????httpContent.Headers.ContentType?=?new?MediaTypeHeaderValue("application/json"); ????????????HttpClient?httpClient?=?new?HttpClient(); ????????????HttpResponseMessage?response?=?httpClient.PostAsync(url,?httpContent).Result; ????????????if?(response.IsSuccessStatusCode) ????????????{ ????????????????string?result?=?response.Content.ReadAsStringAsync().Result; ????????????????return?result; ????????????} ????????????return?null; ????????} ????????///?<summary> ????????///?發(fā)起post請求 ????????///?</summary> ????????///?<typeparam name="T"></typeparam> ????????///?<param name="url">url</param> ????????///?<param name="postData">post數(shù)據(jù)</param> ????????///?<returns></returns> ????????public?static?T?PostResponse<T>(string?url,?string?postData) ????????????where?T?:?class,new() ????????{ ????????????if?(url.StartsWith("https")) ????????????????System.Net.ServicePointManager.SecurityProtocol?=?SecurityProtocolType.Tls; ????????????HttpContent?httpContent?=?new?StringContent(postData); ????????????httpContent.Headers.ContentType?=?new?MediaTypeHeaderValue("application/json"); ????????????HttpClient?httpClient?=?new?HttpClient(); ????????????T?result?=?default(T); ????????????HttpResponseMessage?response?=?httpClient.PostAsync(url,?httpContent).Result; ????????????if?(response.IsSuccessStatusCode) ????????????{ ????????????????Task<string>?t?=?response.Content.ReadAsStringAsync(); ????????????????string?s?=?t.Result; ????????????????result?=?JsonConvert.DeserializeObject<T>(s); ????????????} ????????????return?result; ????????} ????????///?<summary> ????????///?V3接口全部為Xml形式,故有此方法 ????????///?</summary> ????????///?<typeparam name="T"></typeparam> ????????///?<param name="url"></param> ????????///?<param name="xmlString"></param> ????????///?<returns></returns> ????????public?static?T?PostXmlResponse<T>(string?url,?string?xmlString) ????????????where?T?:?class,new() ????????{ ????????????if?(url.StartsWith("https")) ????????????????System.Net.ServicePointManager.SecurityProtocol?=?SecurityProtocolType.Tls; ????????????HttpContent?httpContent?=?new?StringContent(xmlString); ????????????httpContent.Headers.ContentType?=?new?MediaTypeHeaderValue("application/json"); ????????????HttpClient?httpClient?=?new?HttpClient(); ????????????T?result?=?default(T); ????????????HttpResponseMessage?response?=?httpClient.PostAsync(url,?httpContent).Result; ????????????if?(response.IsSuccessStatusCode) ????????????{ ????????????????Task<string>?t?=?response.Content.ReadAsStringAsync(); ????????????????string?s?=?t.Result; ????????????????result?=?XmlDeserialize<T>(s); ????????????} ????????????return?result; ????????} ????????///?<summary> ????????///?反序列化Xml ????????///?</summary> ????????///?<typeparam name="T"></typeparam> ????????///?<param name="xmlString"></param> ????????///?<returns></returns> ????????public?static?T?XmlDeserialize<T>(string?xmlString)? ????????????where?T?:?class,new?() ????????{ ????????????try ????????????{ ????????????????XmlSerializer?ser?=?new?XmlSerializer(typeof(T)); ????????????????using?(StringReader?reader?=?new?StringReader(xmlString)) ????????????????{ ????????????????????return?(T)ser.Deserialize(reader); ????????????????} ????????????} ????????????catch?(Exception?ex) ????????????{ ????????????????throw?new?Exception("XmlDeserialize發(fā)生異常:xmlString:"?+?xmlString?+?"異常信息:"?+?ex.Message); ????????????} ????????} ????}
更多C#微信開發(fā)之旅:基礎(chǔ)類之HttpClientHelper(更新:SSL安全策略)相關(guān)文章請關(guān)注PHP中文網(wǎng)!

熱AI工具

Undress AI Tool
免費(fèi)脫衣圖片

Undresser.AI Undress
人工智慧驅(qū)動的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費(fèi)的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費(fèi)的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強(qiáng)大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6
視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題

PHP是一種開源的腳本語言,廣泛應(yīng)用於網(wǎng)頁開發(fā)和伺服器端編程,尤其在微信開發(fā)中得到了廣泛的應(yīng)用。如今,越來越多的企業(yè)和開發(fā)者開始使用PHP進(jìn)行微信開發(fā),因?yàn)樗蔀榱苏嬲囊讓W(xué)易用的開發(fā)語言。在微信開發(fā)中,訊息的加密和解密是一個非常重要的問題,因?yàn)樗鼈兩婕百Y料的安全性。對於沒有加密和解密方式的消息,駭客可以輕鬆取得其中的數(shù)據(jù),對用戶造成威脅

在微信公眾號開發(fā)中,投票功能經(jīng)常被運(yùn)用。投票功能是讓使用者快速參與互動的好方式,也是舉辦活動和調(diào)查意見的重要工具。本文將為您介紹如何使用PHP實(shí)作微信投票功能。在取得微信公眾號授權(quán)首先,你需要取得微信公眾號的授權(quán)。在微信公眾平臺上,你需要設(shè)定微信公眾號碼的api地址、官方帳號和公眾號碼對應(yīng)的token。在我們使用PHP語言開發(fā)的過程中,我們需要使用微信官方提供的PH

隨著微信的普及,越來越多的企業(yè)開始將其作為行銷工具。而微信群發(fā)功能,則是企業(yè)進(jìn)行微信行銷的重要手段之一。但是,如果只依靠手動發(fā)送,對於行銷人員來說是一件極為費(fèi)時費(fèi)力的工作。所以,開發(fā)一款微信群發(fā)工具就顯得格外重要。本文將介紹如何使用PHP開發(fā)微信群發(fā)工具。一、準(zhǔn)備工作開發(fā)微信群發(fā)工具,我們需要掌握以下幾個技術(shù)點(diǎn):PHP基礎(chǔ)知識微信公眾平臺開發(fā)開發(fā)工具:Sub

微信是目前全球用戶規(guī)模最大的社群平臺之一,隨著行動網(wǎng)路的普及,越來越多的企業(yè)開始意識到微信行銷的重要性。在進(jìn)行微信行銷時,客服服務(wù)是至關(guān)重要的一環(huán)。為了更好地管理客服聊天窗口,我們可以藉助PHP語言進(jìn)行微信開發(fā)。一、PHP微信開發(fā)簡介PHP是一種開源的伺服器端腳本語言,廣泛用於Web開發(fā)領(lǐng)域。結(jié)合微信公眾平臺提供的開發(fā)接口,我們可以使用PHP語言進(jìn)行微信

在微信公眾號開發(fā)中,使用者標(biāo)籤管理是一個非常重要的功能,可以讓開發(fā)者更了解和管理自己的使用者。本篇文章將介紹如何使用PHP實(shí)作微信使用者標(biāo)籤管理功能。一、取得微信用戶openid在使用微信用戶標(biāo)籤管理功能之前,我們首先需要取得用戶的openid。在微信公眾號開發(fā)中,透過使用者授權(quán)的方式取得openid是比較常見的做法。在使用者授權(quán)完成後,我們可以透過以下程式碼取得用

隨著微信成為了人們生活中越來越重要的通訊工具,其敏捷的訊息傳遞功能迅速受到廣大企業(yè)和個人的青睞。對企業(yè)而言,將微信發(fā)展為一個行銷平臺已經(jīng)成為趨勢,而微信開發(fā)的重要性也逐漸凸顯。在其中,群發(fā)功能更是被廣泛使用,那麼,作為PHP程式設(shè)計(jì)師,如何實(shí)現(xiàn)群發(fā)訊息發(fā)送記錄呢?以下將為大家簡單介紹一下。 1.了解微信公眾號相關(guān)開發(fā)知識在了解如何實(shí)現(xiàn)群發(fā)訊息發(fā)送記錄之前,我

如何使用PHP實(shí)現(xiàn)微信公眾號開發(fā)微信公眾號已經(jīng)成為了許多企業(yè)推廣和互動的重要管道,而PHP作為常用的Web語言,也可以用來進(jìn)行微信公眾號的開發(fā)。本文將介紹使用PHP實(shí)現(xiàn)微信公眾號開發(fā)的具體步驟。第一步:取得微信公眾號的開發(fā)者帳號在開始微信公眾號開發(fā)之前,需要先去申請一個微信公眾號的開發(fā)者帳號。具體的註冊流程可參考微信公眾平臺的官方網(wǎng)

隨著網(wǎng)路和行動智慧型裝置的發(fā)展,微信成為了社交和行銷領(lǐng)域不可或缺的一部分。在這個越來越數(shù)位化的時代,如何使用PHP進(jìn)行微信開發(fā)已經(jīng)成為了許多開發(fā)者的關(guān)注點(diǎn)。本文主要介紹如何使用PHP進(jìn)行微信發(fā)展的相關(guān)知識點(diǎn),以及其中的一些技巧和注意事項(xiàng)。一、開發(fā)環(huán)境準(zhǔn)備在進(jìn)行微信開發(fā)之前,首先需要準(zhǔn)備好對應(yīng)的開發(fā)環(huán)境。具體來說,需要安裝PHP的運(yùn)作環(huán)境,以及微信公眾平臺提
