在ASP.NET Core中怎么使用HTTP标头传播(asp.net,core,http,开发技术)

时间:2024-05-10 00:24:37 作者 : 石家庄SEO 分类 : 开发技术
  • TAG :

Demo

下面,我们创建 ServerA、ServiceB 两个 Web API 项目来演示这一功能。

首先,ServiceB 有一个 GET 方法,返回在请求中收到的所有标头,这使我们能够验证标头是否被传播:

publicIHeaderDictionaryGet(){returnRequest.Headers;}

执行 ServiceB 的 GET 请求,我们可以类似下图的响应:

在ASP.NET Core中怎么使用HTTP标头传播

现在,用 ServiceA 调用 ServiceB 并返回响应。

这将向我们显示哪些标头传播到 ServiceB:

publicasyncTask<string>Get(){varclient=_clientFactory.CreateClient("ServiceB-Client");varresponse=awaitclient.GetAsync("/ServiceB");returnawaitresponse.Content.ReadAsStringAsync();}

执行 ServerA 的 GET 请求,可以看到,Authorization标头并没有被传播:

在ASP.NET Core中怎么使用HTTP标头传播

这时,我们可以引用 Nuget 包Microsoft.AspNetCore.HeaderPropagation,并且修改 Startup.cs 启用标头传播功能:

publicvoidConfigureServices(IServiceCollectionservices){//定义需要传播的标头services.AddHeaderPropagation(options=>options.Headers.Add("Authorization"));services.AddHttpClient("ServiceB-Client",options=>options.BaseAddress=newUri("http://localhost:57516"))//定义开启标头传播.AddHeaderPropagation();......}publicvoidConfigure(IApplicationBuilderapp,IWebHostEnvironmentenv){//添加标头传播middlewareapp.UseHeaderPropagation();......}

再次执行 ServerA 的 GET 请求,可以看到,Authorization标头被正确传播了:

在ASP.NET Core中怎么使用HTTP标头传播

 </div> <div class="zixun-tj-product adv-bottom"></div> </div> </div> <div class="prve-next-news">
本文:在ASP.NET Core中怎么使用HTTP标头传播的详细内容,希望对您有所帮助,信息来源于网络。
上一篇:Vue组件如何进行单元测试下一篇:

21 人围观 / 0 条评论 ↓快速评论↓

(必须)

(必须,保密)

阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18