Api支持
HttpClient 是基于Task的异步方法组,支持取消、超时异步特性,其可以分类为以下:Restful: GetAsync,PostAsync,DeleteAsync,PutAsyncHttpHeaders属性:DefaultRequestHeadersTimeout属性:Timeout,相比HttpRequest的参数,更加地智能,用TimeSpan替换了int。Get扩展(本质上是封装了GetAsync()):GetStringAsync,GetStreamAsync,GetByteArrayAsyncSendAsync: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,MultipartFormDataContentHttpClientHandler
作为一个代理角色,可以支持自定义的处理方式。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));Java语言使用HttpClient模拟浏览器登录 http://www.linuxidc.com/Linux/2016-05/131214.htmHttpClient4.3 关于https 中SSL证书请求问题 http://www.linuxidc.com/Linux/2016-04/130090.htmHttpClient4 用法 由HttpClient3 升级到 HttpClient4 必看 http://www.linuxidc.com/Linux/2015-06/119100.htmHttpClient 教程 http://www.linuxidc.com/Linux/2015-06/119099.htm使用HttpClient实现文件的上传下载 http://www.linuxidc.com/Linux/2014-07/104303.htmAndroid 实现 HttpClient 请求Https http://www.linuxidc.com/Linux/2014-05/102306.htmAndroid使用HttpClient下载图片 http://www.linuxidc.com/Linux/2014-05/101855.htmHttpClient使用详解 http://www.linuxidc.com/Linux/2014-08/104945.htm本文永久更新链接地址