亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > .NET > 正文

ASP.NET MVC Web API HttpClient簡介

2024-07-10 13:23:34
字體:
來源:轉載
供稿:網友
1.HttpClient簡單介紹
依稀還記得那個時候用WebClient,HttpWebRequest來發送一個請求,現在ASP.NET MVC4中自帶了一個類HttpClient,用于接收HttpResponseMessage和發送HttpRequestMesssage。
問題在于既然WebClient,HttpWebRequest可以完成相應的功能,為什么還要使用HttpClient類,.NET Framework中既然提出了這樣一個類肯定是有其特別之處的,這里羅列幾個不同之處:
(1) 可以在HttpClient實例上配置擴展,設置默認的頭部,取消未完成的的請求和設置
(2) HttpClient有自己的連接池
(3) HttpClient 不與特定的服務器綁定,可以訪問任何Http請求
(4) HttpClient采用異步請求處理

2.HttpClient備注說明
HttpClient包含在System.net.Http.dll 程序集中,用戶接受和發送http請求,該類適用于.NET4.0以上版本。
默認情況下,HttpWebRequest 將用于向服務器發送請求。此行為可指定一個不同的通道修改在獲取 HttpMessageHandler 實例的構造函數重載之一中作為參數。如果需要與身份驗證的功能或緩存,WebRequestHandler 可用于配置設置,而實例可傳遞給構造函數。返回的處理程序傳遞到采用 HttpMessageHandler 參數的構造函數重載之一
更多說明可以參考微軟官方網站:


3.HttpClient基本操作

復制代碼 代碼如下:


static void BasicMethod()
{
string url = "http://www.baidu.com";
HttpClient client = new HttpClient();
string content = client.GetStringAsync(url).Result;
Console.WriteLine(content);
}


以上是使用HttpClient請求百度主頁,貌似操作起來也挺方便的,運行輸出請求得到的結果如下圖:

ASP.NET MVC Web API HttpClient簡介

 
控制臺輸出的為請求URL的內容。
HttpClient除了上面提到的GetStringAsync()方法之外,還提供了如下Get方法,詳細可以參考MSDN:

ASP.NET MVC Web API HttpClient簡介


4.自定義請求頭
如果要自定義請求頭,我們需要繼承一個類:HttpClientHandler
public class GitHttpClientHandler:HttpClientHandler 

復制代碼 代碼如下:


{
protected override Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
{
request.Headers.Referrer = new Uri("http://www.google.com/");
request.Headers.Add("UserAgent", "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727)");

Task<HttpResponseMessage> task = base.SendAsync(request, cancellationToken);
HttpResponseMessage response = task.Result;
MediaTypeHeaderValue contentType = response.Content.Headers.ContentType;
if (string.IsNullOrEmpty(contentType.CharSet))
{
contentType.CharSet = "GBK";
}
return task;
}
}


HttpClientHandler就是常見的代理模式,在HttpClient.GetStringAsync()加了一層封裝,攔截了HttpClient的輸入和輸出,從而實現一些自定義的操作,這種方式我們在MVC 中非常常見,就是MVC中的過濾器。
5.請求內容過長
HttpClient有一個屬性MaxResponseContentBufferSize,它表示讀取相應內容是最大的字節緩存數,默認值是64K,當頁面內容很多的時候,超過64K則會拋出異常HttpRequestException,導致Get失敗。
我們可以人工設置這個屬性的大小:

復制代碼 代碼如下:


HttpClient client = new HttpClient() { MaxResponseContentBufferSize = 1024 * 1024 };


用如上方式處理即可。
6.中文問題
中文問題總是令人頭疼,很多時候會出現亂碼。上面提到的自定義請求頭也可以處理,這里貼出一段代碼作參考,中文問題有點復雜需要根據具體情況處理:

復制代碼 代碼如下:


HttpResponseMessage response = task.Result;
MediaTypeHeaderValue contentType = response.Content.Headers.ContentType;
if(string.IsNullOrEmpty(contentType.CharSet))
{
contentType.CharSet = "GBK";
}


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩成人xxxx| 91精品久久久久久久久青青| 欧美日韩免费在线| 成人国产在线激情| 91精品国产综合久久久久久蜜臀| 亚洲免费精彩视频| 欧美日韩一区二区三区在线免费观看| 国产欧美va欧美va香蕉在线| 91免费人成网站在线观看18| 亚洲欧洲黄色网| 激情久久av一区av二区av三区| 欧美裸体xxxx| 亚洲区中文字幕| 久久99精品久久久久久噜噜| 91在线观看免费高清完整版在线观看| 国产不卡av在线| 国产精品极品美女粉嫩高清在线| 91视频免费网站| 日韩在线视频免费观看高清中文| 日韩一区av在线| 在线成人激情视频| 国产成人综合久久| 国产成人在线一区| 久久亚洲国产成人| 91精品国产自产在线老师啪| 国产精品美女在线观看| 91精品久久久久久久久久另类| 深夜精品寂寞黄网站在线观看| 中文字幕国产亚洲2019| 亚州成人av在线| 一区二区三区国产视频| 欧美日韩精品二区| 久久人人97超碰精品888| 色系列之999| 国产97在线|日韩| 久久视频国产精品免费视频在线| 一区二区三区www| 精品久久久久久久久久ntr影视| 日韩暖暖在线视频| 欧美亚洲另类激情另类| 欧美精品情趣视频| 亚洲a在线播放| 国产精品一区二区3区| 亚洲欧美www| 日韩精品免费观看| 久久国产精品亚洲| 亚洲欧美日韩国产成人| 91亚洲va在线va天堂va国| 亚洲free嫩bbb| 欧美精品videofree1080p| 精品在线观看国产| 日韩精品中文字| www.日本久久久久com.| 欧美中文字幕在线| 欧美激情亚洲自拍| 91久久国产综合久久91精品网站| 夜夜嗨av色综合久久久综合网| 成人免费看吃奶视频网站| 国产99久久精品一区二区 夜夜躁日日躁| 亚洲精品网址在线观看| 精品呦交小u女在线| 一本色道久久综合狠狠躁篇怎么玩| 98视频在线噜噜噜国产| 另类美女黄大片| 精品中文字幕视频| 丝袜亚洲欧美日韩综合| 久久亚洲精品一区| 国产精品一区二区三| 欧美激情a∨在线视频播放| 久久这里有精品视频| 精品国产一区av| 国产精品欧美久久久| 欧美激情在线有限公司| 国产欧美日韩丝袜精品一区| 国产美女精品视频免费观看| 国产精品福利久久久| 色哟哟亚洲精品一区二区| 精品中文视频在线| 亚洲人成网站色ww在线| 亚洲欧美日韩国产中文| 日韩在线不卡视频| 91久久在线观看| 亚洲精品国产免费| 亚洲资源在线看| 69精品小视频| 亚洲国产精彩中文乱码av在线播放| 国产日韩精品在线观看| 亚洲综合第一页| 在线观看中文字幕亚洲| 国产日韩在线视频| 欧美大奶子在线| 在线观看成人黄色| 精品呦交小u女在线| 久久影院中文字幕| 欧美做爰性生交视频| 久久久之久亚州精品露出| 庆余年2免费日韩剧观看大牛| 精品欧美国产一区二区三区| 成人免费看黄网站| 久久色精品视频| 91社影院在线观看| 亚洲va欧美va在线观看| 欧美日韩美女视频| 992tv在线成人免费观看| 日本一区二区在线播放| 日韩国产在线播放| 久久久视频精品| 91av福利视频| 清纯唯美亚洲激情| 疯狂做受xxxx欧美肥白少妇| 日韩**中文字幕毛片| 91在线无精精品一区二区| 亚洲欧美激情在线视频| 亚洲图片欧洲图片av| 欧洲精品在线视频| 国产精品久久久久一区二区| 成人看片人aa| 日韩中文有码在线视频| 久久久噜噜噜久久中文字免| 日韩视频免费在线观看| 亚洲高清一区二| www.久久久久| 色综久久综合桃花网| 美女扒开尿口让男人操亚洲视频网站| 久久精品视频99| 亚洲天堂成人在线视频| 国产精品偷伦一区二区| 欧美成人激情图片网| 亚洲精品视频免费| 精品久久久久久中文字幕大豆网| 国产中文字幕日韩| 亚洲人成网在线播放| 国产日韩视频在线观看| 国产日韩在线一区| 亚洲欧美一区二区三区在线| 日韩成人中文电影| 欧美激情综合色综合啪啪五月| 国产精品第一区| 久久久免费观看视频| 九九热精品在线| 国产精品2018| 亚洲第一天堂av| 国产免费一区视频观看免费| 亚洲欧美综合精品久久成人| 国产精品丝袜久久久久久高清| 日韩在线精品视频| 欧美丰满老妇厨房牲生活| 伊人伊成久久人综合网站| 动漫精品一区二区| 欧美亚洲国产日本| 亚洲欧美日韩高清| 国产午夜精品视频免费不卡69堂| 国产精品久久久久久久av大片| 国产精品黄页免费高清在线观看| 亚洲美女激情视频| 92裸体在线视频网站| 国产91在线播放精品91| 亚洲国产成人精品女人久久久| 久久久www成人免费精品张筱雨| 成人高清视频观看www| 色综合久久中文字幕综合网小说| 国产成人精品日本亚洲| 午夜精品久久久久久99热软件| 久久香蕉国产线看观看网|