日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

HttpClient 使用

發布時間:2024/9/5 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 HttpClient 使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Api支持

HttpClient 是基于Task的異步方法組,支持取消、超時異步特性,其可以分類為以下:

Restful: GetAsync,PostAsync,DeleteAsync,PutAsync

HttpHeaders屬性:DefaultRequestHeaders

Timeout屬性:Timeout,相比HttpRequest的參數,更加地智能,用TimeSpan替換了int。

Get擴展(本質上是封裝了GetAsync()):GetStringAsync,GetStreamAsync,

GetByteArrayAsync

SendAsync:Restful的實現應該是封裝了此方法。需要一個HttpRequestMessage作為參數。

HttpContent

使用post方式請求示例:

public static async Task<string> CreateUrlAsync(string url, Dictionary<string, string> parameters, string accessToken, int timeount = 10) {HttpClient httpClient = new HttpClient(new MyHttpClientHandlerProxy(accessToken));httpClient.DefaultRequestHeaders.Add("Authorization", "Bearer " + accessToken);httpClient.Timeout = TimeSpan.FromSeconds(timeount);FormUrlEncodedContent content = new FormUrlEncodedContent(parameters);var response = await httpClient.PostAsync(url, content);var str = await response.Content.ReadAsStringAsync();return str; }

其他的Content類型:

StreamContent,StringContent,MutilpartContent,MultipartFormDataContent

HttpClientHandler

作為一個代理角色,可以支持自定義的處理方式。

public class MyHttpClientHandlerProxy : HttpClientHandler {private string accessToken;public MyHttpClientHandlerProxy(string accessToken){this.accessToken = accessToken;}protected async override Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, System.Threading.CancellationToken cancellationToken){//處理Headersrequest.Headers.Referrer = new Uri("www.imctf.com");request.Headers.Add("Authorization", "Bearer " + accessToken);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)");//執行var response = await base.SendAsync(request, cancellationToken);//處理編碼var contentType = response.Content.Headers.ContentType;if (string.IsNullOrEmpty(contentType.CharSet)){contentType.CharSet = "GBK";}return response;} }

使用:

HttpClient httpClient = new HttpClient(new MyHttpClientHandlerProxy(accessToken));

轉載于:https://www.cnblogs.com/pengzhen/p/5784804.html

總結

以上是生活随笔為你收集整理的HttpClient 使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。