asp.net-core – .NET Core HttpClient是否具有拦截器的概念?
发布时间:2020-12-16 06:55:31 所属栏目:asp.Net 来源:网络整理
导读:我想围绕从我的ASP.NET核心应用程序通过HttpClient进行的所有调用包含一些时序逻辑,包括从第三方库调用. .NET Core中的HttpClient是否有我可以插入的东西来在每个请求上运行一些代码? 解决方法 是的,它确实. HttpClient通过DelegatingHandler链生成HTTP请求
我想围绕从我的ASP.NET核心应用程序通过HttpClient进行的所有调用包含一些时序逻辑,包括从第三方库调用.
.NET Core中的HttpClient是否有我可以插入的东西来在每个请求上运行一些代码? 解决方法
是的,它确实. HttpClient通过DelegatingHandler链生成HTTP请求.要拦截HttpClient请求,可以将带有覆盖的SendAsync方法的派生处理程序添加到该链.
用法: var handler = new ExampleHttpHandler(fooService); var client = new HttpClient(new ExampleHttpHandler(handler)); var response = await client.GetAsync("http://google.com"); 执行: public class ExampleHttpHandler : DelegatingHandler { //register the handler itself in DI to inject dependencies public ExampleHttpHandler(FooService service) : this(service,null) { } public ExampleHttpHandler(FooService service,HttpMessageHandler innerHandler) { //default handler should be the last! InnerHandler = innerHandler ?? new HttpClientHandler(); } protected override async Task<HttpResponseMessage> SendAsync( HttpRequestMessage request,CancellationToken cancellationToken) { //add any logic here return await base.SendAsync(request,cancellationToken); } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc-3 – ViewBag- MVC3-ASP.NET
- asp.net-mvc – ASP.Net MVC Razor Views – 在构建时缩小H
- 在ASP.NET中接收POST数据
- ASP.Net C#ResolveClientUrl里面的类
- ASP.Net,C#.Net和VB.Net之间的区别?
- asp.net-mvc – 如何使用asp.net mvc razor在视图中访问全局
- asp.net-mvc-3 – 陷入ASPNETCOMPILER:错误ASPRUNTIME:成
- asp.net-mvc-3 – ASP.NET MVC 3模型绑定 – 与输入id =“T
- asp.net-mvc – ASP.NET MVC 3区域 – 无法使用自定义路由查
- asp.net – 如何在IIS中部署.NET Web项目
推荐文章
站长推荐
- 在ASP.NET中构建动态“高级搜索”控件的建议
- asp.net – IIS 7.0不允许下载MP4视频
- asp.net – 你能使用基于属性的WebApi 2与WebFor
- 一步步开发自己的博客 .NET版(3、注册登录功能)
- HttpClientFactory与Steeltoe结合来完成服务发现
- asp.net – “更新/取消”按钮不会出现在Templat
- asp.net core 运用 Redis 配置步骤
- .net – 在MVC应用程序之间共享视图,逻辑等
- asp.net-mvc – 自定义授权MVC 3和Ninject IoC
- asp.net – 无法将“ASP._Page__ViewStart_cshtm
热点阅读