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#獲取文件名和文件路徑的兩種實(shí)現(xiàn)方式
這篇文章主要介紹了C#獲取文件名和文件路徑的兩種實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-07-07
Unity實(shí)現(xiàn)引導(dǎo)頁(yè)效果
這篇文章主要為大家詳細(xì)介紹了Unity實(shí)現(xiàn)引導(dǎo)頁(yè)效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-04-04
C#發(fā)送HttpPost請(qǐng)求來(lái)調(diào)用WebService的方法
在C#中發(fā)送HttpPost請(qǐng)求來(lái)調(diào)用WebService中的MyAction方法,代碼如下:需要的朋友可以參考一下2013-03-03
ZooKeeper 實(shí)現(xiàn)分布式鎖的方法示例
這篇文章主要介紹了ZooKeeper 實(shí)現(xiàn)分布式鎖的方法示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-06-06
C#實(shí)現(xiàn)Json轉(zhuǎn)Unicode的方法
這篇文章主要介紹了C#實(shí)現(xiàn)Json轉(zhuǎn)Unicode的方法,可實(shí)現(xiàn)輸入為帶有json格式的文本,輸出正常文本的功能,需要的朋友可以參考下2014-09-09
C# 將學(xué)生列表轉(zhuǎn)換為字典的實(shí)現(xiàn)
在開發(fā)應(yīng)用程序時(shí),管理和處理數(shù)據(jù)結(jié)構(gòu)是非常重要的一環(huán),本文就來(lái)介紹一下C# 將學(xué)生列表轉(zhuǎn)換為字典的實(shí)現(xiàn),感興趣的可以了解一下2025-01-01

