原文

Add to Request

为上游请求添加请求头,只需如下一样将下面的配置添加到一个ReRoute里:

"UpstreamHeaderTransform": {"Uncle": "Bob"
}

上面的例子中添加了一个键为Uncle,值为Bob的请求头。

支持Placeholders。

Add to Response

还可以为下游服务添加响应头, 如下一样将下面的配置添加到一个ReRoute里:

"DownstreamHeaderTransform": {"Uncle": "Bob"
},

如果你想返回Butterfly APM trace id,可以如下配置:

"DownstreamHeaderTransform": {"AnyKey": "{TraceId}"
},

Find and Replace

为了transform一个http头,我们需要指定一个http头的键,然后入下一样设置transform:

"Test": "http://www.bbc.co.uk/, http://ocelot.com/"

键是“Test”, 值是“http://www.bbc.co.uk/, http://ocelot.com/”。这个值得意思是将 http://www.bbc.co.uk/ 替换成 http://ocelot.com/。相应的语法是:{find}, {replace}。

Pre Downstream Request

下面的位于一个ReRoute的配置会将 http://www.bbc.co.uk/ 替换成 http://ocelot.com/。 这个请求头在请求下游的时候会被修改,然后再发送至下游服务器。

 "UpstreamHeaderTransform": {"Test": "http://www.bbc.co.uk/, http://ocelot.com/"
}

Post Downstream Request

下面的位于一个ReRoute的配置会将 http://www.bbc.co.uk/ 替换成 http://ocelot.com/。ocelot在收到下游服务器的响应的时候回将替换掉响应的http响应头。

"DownstreamHeaderTransform": {"Test": "http://www.bbc.co.uk/, http://ocelot.com/"
},

Placeholders

header transformation支持placeholder。

  • {BaseUrl} - 这个使用的是Ocelot的base url。例如值为:http://localhost:5000
  • {DownstreamBaseUrl} - 这个使用的是下游服务的base url。例如值为:http://localhost:5000。这个只有在`DownstreamHeaderTransform`里面才有效
  • {TraceId} - 这个使用的是 Butterfly APM Trace Id。这个只有在DownstreamHeaderTransform里面才有效

Handling 302 Redirects

Ocelot默认是自动根据响应头里面的Location自动跳转的。如果你想将响应头里面的location返回给客户,可以如下一样配置。

"DownstreamHeaderTransform": {"Location": "http://www.bbc.co.uk/, http://ocelot.com/"
},"HttpHandlerOptions": {"AllowAutoRedirect": false,
},

还可以使用BaseUrl placeholder。

"DownstreamHeaderTransform": {"Location": "http://localhost:6773, {BaseUrl}"
},"HttpHandlerOptions": {"AllowAutoRedirect": false,
},

如果使用了负载均衡,下游的base url可能会有多个,可能会导致上面的配置不能正常工作。这种情况下可以如下一样配置。

"DownstreamHeaderTransform": {"Location": "{DownstreamBaseUrl}, {BaseUrl}"
},"HttpHandlerOptions": {"AllowAutoRedirect": false,
},

转载于:https://www.cnblogs.com/irocker/p/ocelot-headerstransformation.html

[译]Ocelot - Headers Transformation相关推荐

  1. 定制Ocelot来满足需求

    这篇文章,我们将从Ocelot的中间件源码分析,目前Ocelot已经实现那些功能,还有那些功能在我们实际项目中暂时还未实现,如果我们要使用这些功能,应该如何改造等方面来说明. 一.Ocelot源码解读 ...

  2. python获取网页数据对电脑性能_【Python】网页数据爬取实战

    由于网页结构跟之前有变化,还不是很熟悉.代码待完善,问题记录: 腾讯新闻二级网页内容爬取有问题. 链家网站头文件没有用到. 爬取一条腾讯视频的header内容,存入txt.要求: 包含网页链接 包含t ...

  3. Ocelot(二)- 请求聚合与负载均衡

    Ocelot(二)- 请求聚合与负载均衡 作者:markjiang7m2 原文地址:http://letyouknow.net/ocelot/ocelot-tutorial-2.html 源码地址:h ...

  4. [译]Vulkan教程(04)基础代码

    [译]Vulkan教程(04)基础代码 General structure 通用结构 In the previous chapter you've created a Vulkan project w ...

  5. (补充)爬取大西洋月刊并调用彩云小译翻译 API 脚本

    导读 上一篇文章写了如何爬取<The Atlantic>的新闻学习英语,这篇文章补充上一篇文章,在爬取文章段落时,同时调用翻译接口,到达如图所示的样子. 如图,翻译的非常不错,借助的是彩云 ...

  6. Zuul:智能路由和过滤(译)

    2019独角兽企业重金招聘Python工程师标准>>> Zuul:智能路由和过滤(译) 博客分类: spring 微服务 Router and Filter: Zuul 路由是微服务 ...

  7. html 跨域_常见跨域解决方案以及Ocelot 跨域配置

    常见跨域解决方案以及Ocelot 跨域配置 Intro 我们在使用前后端分离的模式进行开发的时候,如果前端项目和api项目不是一个域名下往往会有跨域问题.今天来介绍一下我们在Ocelot网关配置的跨域 ...

  8. 基于Angular创建后台数据模拟(译)

    我们已经习惯用AngularJS来创建前后端分离的应用,同时为了便于开发也会通过在前端代码库中使用mock数据来模拟服务端的接口.使用mock数据具有以下诸多的好处: * 如果你并不是接口api的开发 ...

  9. Ocelot API网关的实现剖析

    转:https://www.cnblogs.com/shanyou/p/7787183.html 在微软Tech Summit 2017 大会上和大家分享了一门课程<.NET Core 在腾讯财 ...

最新文章

  1. 一篇文章搞懂人脸识别的十个概念
  2. 蚂蚁森林合种计划(2020.10.31,7天有效,每周更新)
  3. vs怎么编译php文件,vscode怎么初始编译
  4. css样式表和选择器
  5. Struts2标签 逻辑标签和UI标签
  6. [CareerCup] 1.6 Rotate Image 翻转图像
  7. 【sklearn学习】特征选择
  8. 服务器系统玩dnf,win7系统玩dnf提示正在连接服务器的解决方法
  9. 如何在 Asp.Net Core 中 管理敏感数据
  10. ajax处理返回的xml数据,使用AJAX调用WebService返回xml不返回json原因以及解决办法...
  11. java默认数组值_数组元素默认的初始值都是什么
  12. 中国最闷声发大财的城市,人均GDP超杭州
  13. 64位内核开发第8讲,文件操作.以及删除文件.
  14. ThinkPHP文件目录说明
  15. SSM框架搭建过程----学生学籍管理系统
  16. 安卓中的@Nullable和NonNull(NotNull) 等 注释
  17. Office 2003 打开RMS权限保护文档时出错
  18. java rector_Java IO的Reactor模式
  19. 天气暖和了,我却感冒了
  20. 解决时间控件input不能选择的问题

热门文章

  1. 下载文件扩展名php,[宜配屋]听图阁
  2. mysql5.7.20官方文档,MySql 5.7.20安装及data和my.ini文件的配置
  3. AT1 one-dimensional objects
  4. 卷积神经网络的重要知识点
  5. 扫地机自动回充揭秘之小米/iRobot/云鲸/360
  6. Datawhale 零基础入门CV赛事-Task3 字符识别模型
  7. 【最新】2021年自然语言处理 (NLP) 算法学习路线!
  8. 毕业设计项目,微博语料情感分析,文本分类
  9. php 取一条数据,php 读取txt 每次固定输出一条数据用什么方法实现?
  10. 模型房推荐_【自带水乐园】“巴洛克堡城”酒店,人均200+入住家庭房,乐享下午茶+自行车+游船+萌宠乐园!...