C#使用HttpClient進(jìn)行http操作方式
C#使用HttpClient進(jìn)行http操作
在.Net 4.5中增加了一個(gè)新的System.Net.Http.HttpClient名字空間(在 System.Net.Http.dll 中)。
其中 提供了用于發(fā)送 HTTP 請(qǐng)求和接收 HTTP 響應(yīng)的API。
基本操作
和以前的HttpWebRequest相比,HttpClient更加簡(jiǎn)潔,下面就是一個(gè)下載www.baidu.com頁(yè)面的示例:
string uri = "http://www.baidu.com/";
HttpClient client = new HttpClient();
string body = await client.GetStringAsync(uri); 除GetStringAsync()之外,還有GetByteArrayAsync()、GetStreamAsync()、PostAsync ()、DeleteAsync()等函數(shù),可用選擇使用。
一個(gè)重要的特點(diǎn)就是: 所有的函數(shù)操作都是異步的。
獲取響應(yīng)
最簡(jiǎn)單的函數(shù)是HttpClient.GetStringAsync(), 用這個(gè)函數(shù)的時(shí)候,調(diào)用操作并不會(huì)阻塞,我們看不到HttpResponse的相關(guān)信息,如果需要看到Http響應(yīng)的信息,可以用如下標(biāo)準(zhǔn)方式:
Product product = null;
HttpResponseMessage response = await client.GetAsync(path);
if (response.IsSuccessStatusCode)
{
product = await response.Content.ReadAsAsync<Product>();
}
return productt;這里使用HttpResponseMessage.
C# httpclient發(fā)送請(qǐng)求報(bào)錯(cuò)
在c#當(dāng)中使用httpclient發(fā)送http請(qǐng)求,代碼如下:
string customTableServiceUrl = "https://localhost:5001/api/XXX/";
HttpClient httpClient = new HttpClient();
httpClient.DefaultRequestHeaders.Accept.Clear();
httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Delete,
customTableServiceUrl + "CLEVER/entries/2006");
var apiResponse = await httpClient.SendAsync(request);但是在執(zhí)行的時(shí)候卻報(bào)錯(cuò)如下:
The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel.
在定義HttpClient的代碼前加上一行代碼解決了我的問(wèn)題:
ServicePointManager.ServerCertificateValidationCallback = delegate { return true; }; 總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
c++ STL之list對(duì)結(jié)構(gòu)體的增加,刪除,排序等操作詳解
這篇文章主要介紹了c++ STL之list對(duì)結(jié)構(gòu)體的增加,刪除,排序等操作詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-12-12
淺析C#調(diào)用Python代碼的實(shí)戰(zhàn)應(yīng)用與避坑策略
這篇文章主要為大家詳細(xì)介紹了淺#調(diào)用Python代碼的實(shí)戰(zhàn)應(yīng)用與避坑策略,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,感興趣的小伙伴可以了解下2026-01-01
C#構(gòu)造函數(shù)在基類(lèi)和父類(lèi)中的執(zhí)行順序
這篇文章介紹了C#構(gòu)造函數(shù)在基類(lèi)和父類(lèi)中的執(zhí)行順序,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-04-04
C#實(shí)現(xiàn)打印與打印預(yù)覽功能的思路及代碼
這篇文章主要介紹了C#實(shí)現(xiàn)打印與打印預(yù)覽功能的思路及代碼,有需要的朋友可以參考一下2013-12-12

