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 使用相关推荐

  1. java爬取验证码图片_JAVA HttpClient实现页面信息抓取(获取图片验证码并传入cookie实现信息获取)...

    JAVA HttpClient实现页面信息抓取(获取图片验证码并传入cookie实现信息获取) 发布时间:2018-05-18 16:41, 浏览次数:632 , 标签: JAVA HttpClien ...

  2. httpclient工具类,post请求发送json字符串参数,中文乱码处理

    在使用httpclient发送post请求的时候,接收端中文乱码问题解决. 正文: 我们都知道,一般情况下使用post请求是不会出现中文乱码的.可是在使用httpclient发送post请求报文含中文 ...

  3. 关于HttpClient上传中文乱码的解决办法

    使用过HttpClient的人都知道可以通过addTextBody方法来添加要上传的文本信息,但是,如果要上传中文的话,或还有中文名称的文件会出现乱码的问题,解决办法其实很简单: 第一步:设置Mult ...

  4. java url json字符串_使用HttpClient将URL中的JSON查询字符串发送到Web服务(Java)

    我有一个我建立的Web服务...我现在要做的是发送一个简单的请求,其中包含一个从Tapestry Web应用程序到该Web服务的json查询字符串.我四处搜索,大多数人都说使用Apache HttpC ...

  5. java rest httpclient_java http请求建议使用webClient,少用RestTemplate,不用HttpClient

    简介: webClient:是Spring-webFlux包下的,非阻塞响应,最低java8支持函数式编程,性能好 RestTemplate:是Spring-webmvc包下的,满足RestFul原则 ...

  6. 【请求后台接口】30秒完成Angular10精简版HttpClient请求服务搭建

    ng g s services/http app.module.ts ... @NgModule({declarations: [...],imports: [...HttpClientModule, ...

  7. Angular 4+ HttpClient

    个人博客迁移至 http://www.sulishibaobei.com  处: 这篇,算是上一篇Angular 4+ Http的后续: Angular 4.3.0-rc.0 版本已经发布?.在这个版 ...

  8. HttpClient学习

    HttpClient学习 (1)下面列举几个主要的Http相关概念的类 类名 描述 HttpClient 建立请求客户端 HttpGet 代表请求方法,类似的还有HttpHead, HttpPost, ...

  9. 漫谈Httpclient

    引用地址: http://hc.apache.org/httpclient-3.x/ End of life The Commons HttpClient project is now end of ...

  10. 使用HttpClient实现跨服务图片下载

    需求: 由于web系统存放图片的文件夹路径和erp系统存放图片的文件夹路径不一样 所以 web系统文件上传的文件要拷贝到erp对应的文件夹 思路: 在erp中访问图片接口的时候,如果图片不存在,则调w ...

最新文章

  1. RCP:解决Navigator快捷键不生效的问题
  2. LNK2001连接错误
  3. 浅谈创业性公司的发展
  4. C++通过引用来传递和返回类对象
  5. Linux系统自启动脚本
  6. 【笔试面试】C#中的程序集
  7. 在SQL Server Management Studio 中建立外键约束
  8. Q131:PBRT-V3,对比SurfaceInteration和MediumInteraction(笔记)
  9. close() was never explicitly called on database
  10. 联想智能云教室安win7_联想智能云教室解决方案-联想商用.PDF
  11. newifimini出厂固件_新路由newifi固件
  12. 内网穿透,将内网地址映射为外网地址
  13. restful风格的接口设计
  14. Linux/ Unix 键盘检测程序
  15. PS标尺和标记线用法的简单记录
  16. 《Oracle 10G 系统教程 中科院培训老师讲授》
  17. 标签超出图像控件c语言,VC++标签控件之图像标签控件
  18. opencv imread函数
  19. SpringBoot Service 同名异常(conflicts with existing, non-compatible bean definition of same name)
  20. 形式语言与自动机学习复述笔记

热门文章

  1. goland go test 多个文件_这个代码怎么会编译不通过?Goland 新手常见问题解决:GOPATH 和 Go Modules 编译不成功...
  2. html向下的符合,下面HTML代码片段中,符合XHTML使用规范的是( )。
  3. 重启sshd_调整linux服务器sshd的MaxStartups,确保可以并行登录
  4. android 带记忆功能的播放器源码,【全开源可二开】带后台管理面板的在线音乐播放器Android应用APP源码...
  5. linux中original_如何在 Linux 中整理磁盘碎片
  6. iphone照片删掉又出现_两个月前删的IPhone手机照片还有救?很简单,三招帮你轻松恢复...
  7. 未经审视的人生是不值得过的
  8. Apache Flink 零基础入门(十二)Flink sink
  9. Dockerfile----ubuntu-java
  10. Jena增删改查java API