2016-11-24 51 views
0

我有一个在后端使用一些外部服务的asp.net应用程序的WebAPI,是有办法自定义标题添加到所有出站请求(如休息或肥皂reqests) ?我可以创建一个过滤器,但它只拦截我的webapi客户端的传入请求和响应。您的问题ASP.net的WebAPI添加标题,所有出站请求

+1

一种方法是创建在HttpClient的包装和使用该包装打电话给你的第三方服务。在进行调用之前,您可以在封装器中配置头文件。只是一个想法,可能会有更优雅的解决方案。 – Developer

+0

请在下面的链接中找到答案; http://stackoverflow.com/a/22998513/705947 –

+0

谢谢,但我不需要添加标头肥皂请求,但所有的http请求,而不改变每个客户端组件在web应用程序 – user2100125

回答

0

两个可能的解决方案:

  1. 创建你的http请求模块(HttpClient的,HttpWebRequest的,...),签署组件和对GAC然后注册自定义版本,一个例子是可用https://stackoverflow.com/a/9266821/5270073

这种方法的缺点是,每当开发人员使用新模块来使用外部服务时,都需要实现并注册该自定义新模块。

  1. 在您的基础设施(Kong,Tyk,...)中添加一个API网关或代理,在此网关中注册您的外部服务并从API网关使用外部服务。您可以轻松地将自定义标头添加到使用此网络组件的所有请求。

流程:

api.mydomain.com => externalservice.com 

更改:

api.mydomain.com => apigateway.mydomain.com/externalservice => externalservice.com 

个人而言,我更喜欢,因为第二个选项:

  • 您可以控制消费服务;
  • 您可以将自定义标头添加到其他应用程序或服务器;
  • 此方法符合DevOps实践。在香港

自定义请求:https://getkong.org/plugins/request-transformer/

上TYK自定义请求:https://tyk.io/tyk-documentation/transform-traffic/request-method-transform/

相关问题