在ASP.NET Core中怎么使用HTTP标头传播
导读:本文共1209.5字符,通常情况下阅读需要4分钟。同时您也可以点击右侧朗读,来听本文内容。按键盘←(左) →(右) 方向键可以翻页。
摘要: Demo下面,我们创建 ServerA、ServiceB 两个 Web API 项目来演示这一功能。首先,ServiceB 有一个 GET 方法,返回在请求中收到的所有标头,这使我们能够验证标头是否被传播:publicIHeaderDictionaryGet(){returnRequest.Headers;}执行 ServiceB 的 GET 请求,我们可... ...
目录
(为您整理了一些要点),点击可以直达。Demo
下面,我们创建 ServerA、ServiceB 两个 Web API 项目来演示这一功能。
首先,ServiceB 有一个 GET 方法,返回在请求中收到的所有标头,这使我们能够验证标头是否被传播:
publicIHeaderDictionaryGet(){returnRequest.Headers;}
执行 ServiceB 的 GET 请求,我们可以类似下图的响应:
现在,用 ServiceA 调用 ServiceB 并返回响应。
这将向我们显示哪些标头传播到 ServiceB:
publicasyncTask<string>Get(){varclient=_clientFactory.CreateClient("ServiceB-Client");varresponse=awaitclient.GetAsync("/ServiceB");returnawaitresponse.Content.ReadAsStringAsync();}
执行 ServerA 的 GET 请求,可以看到,Authorization标头并没有被传播:
这时,我们可以引用 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标头被正确传播了:
</div> <div class="zixun-tj-product adv-bottom"></div> </div> </div> <div class="prve-next-news">
在ASP.NET Core中怎么使用HTTP标头传播的详细内容,希望对您有所帮助,信息来源于网络。