HttpClient 使用
生活随笔
收集整理的這篇文章主要介紹了
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 使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: opencv vs2013开发环境配置
- 下一篇: 反函数的导数