首页 > 其他分享 >【API Management】使用 APIM Inbound Policy 来修改Content-Type Header的值

【API Management】使用 APIM Inbound Policy 来修改Content-Type Header的值

时间:2023-09-07 20:32:09浏览次数:54  
标签:Management HTTP header Inbound Header set policy APIM

问题描述

在使用APIM提供API服务管理的场景中,遇见了客户端请求时候发送的请求Header中的Content-Type不满足后台服务器的要求,但是在客户端要求客户修改代码难度较高。

所以面对这样的情况,是否在APIM端修改为对请求的Content-Type进行覆写呢?

【API Management】使用 APIM Inbound Policy 来修改Content-Type Header的值_覆写


问题解答

可以的。

APIM支持通过设置策略(Policy)来改变请求的Header,使用的策略语句时 set-header, 可以实现覆写,追加,删除等操作。

在本案例中,需要使用的 set-header策略如下:

<inbound> 
        <base />
		<set-header name="Content-Type" exists-action="override">
            <value>application/json; charset=utf-8</value>
        </set-header>
</inbound>

注意:因为时需要把请求传递到后端API服务器,所以需要在APIM的入站(Inbound)策略中设置,如果设置在出站(Outbound)策略中,它修改的不是请求的Header,而变成了APIM返回给客户端调用的Response Header。


参考资料

APIM Set-Header策略:https://docs.azure.cn/zh-cn/api-management/set-header-policy 

The set-header policy assigns a value to an existing HTTP response and/or request header or adds a new response and/or request header.


Use the policy to insert a list of HTTP headers into an HTTP message. When placed in an inbound pipeline, this policy sets the HTTP headers for the request being passed to the target service. When placed in an outbound pipeline, this policy sets the HTTP headers for the response being sent to the gateway’s client.

标签:Management,HTTP,header,Inbound,Header,set,policy,APIM
From: https://blog.51cto.com/u_13773780/7401225

相关文章

  • Microsoft SQL Server Management Studio 常用的快捷键不见了
    问题安装SSMS18.1后,发现隐藏/显示结果窗格的快捷键Ctrl+R没法用了分析当Ctrl+R时,状态栏看到有反应,说明快捷键默认被转给其他功能了。翻一翻菜单,发现是这里用了,如图。解决移除已有的快捷键为结果窗格设置设置快捷键......
  • Memory management
    概述本节主要讨论数据在内存和硬盘之间的移动的管理,可以分为两个部分,空间控制(SpatialControl)和时间控制(TemporalControl)。spatialcontrol决定将pages写到磁盘的哪个位置,使得常常在一起使用的pages能离得比较近,从而提高I/O效率。temporalcontrol决定何时将pages......
  • 关于前后端交互,取header的尴尬
    背景:最近在写一个接口的时候,需求是这样的,上传excel,匹配项目有多少个字段匹配上了,如果匹配上了在单元格上标注绿色背景,然后返回excel文件和匹配的详细。首先这个excel文件,后端是不会去保存的,所以无法直接返回文件链接,然后需要返回一个json,告诉前端有多少行是匹配上了的,中匹配多少......
  • Windows隐藏nginx的版本,去掉header中的server后面的内容
    一、隐藏nginx的版本,只需要修改nginx的配置文件,重启nginx即可打开nginx所在文件下的conf文件夹下的nginx.conf修改server节点下的 server_tokens改为server_tokensoff;如果没有,添加即可; 二、去掉header中的server后面的内容想将上面截图中的server里面的ngxin也去掉,需......
  • Debian / Ubuntu linux install kernel headers package
    确保你有最新的apt版本$ sudoapt-getupdate查找最新的内核版本(可选)$ apt-cachesearchlinux-headers-$(uname-r)安装Linux内核包$ sudoapt-getinstalllinux-headers-$(uname-r)......
  • HttpWebRequestElement.UseUnsafeHeaderParsing Property
    目录异常信息解决办法相关参考异常信息System.Net.WebException:“服务器提交了协议冲突.Section=ResponseHeaderDetail=CR后面必须是LF”解决办法一、通过配置文件实现web.config或app.config中设置如下属性<system.net><settings><httpWebRequestuseUn......
  • Ubuntu 20.04编译opencv-3.1.0时报错 error: 'CODEC_FLAG_GLOBAL_HEADER' was not dec
    Ubuntu20.04源码编译安装opencv320报错error:'CODEC_FLAG_GLOBAL_HEADER'wasnotdeclaredinthisscope的解决办法:修改/opt/opencv/opencv-3.2.0/modules/videoio/src/cap_ffmpeg_impl.hpp,顶端添加如下代码:#defineAV_CODEC_FLAG_GLOBAL_HEADER(1<<22)#defineCODEC_F......
  • ios开发之--ios11适配:TableView的heightForHeaderInSection设置高度无效/UISearchBar
    更新到ios11,然后使用x-code9运行项目,发现tableview的-(CGFloat)tableView:(UITableView*)tableViewheightForHeaderInSection:(NSInteger)section方法不走,所以页面也华丽丽的变成了一排的cell,通过查看文档和资料,原来是ios11默认开启self-sizing,把这个属性关系即可,具体代码如下:sel......
  • 项目管理(Project Management)
    项目管理(ProjectManagement)是指对项目进行规划、组织、协调和控制的过程,以实现项目目标的一系列活动。它涉及到对项目范围、时间、成本、质量、风险等方面的管理,以确保项目按照预定的要求和目标顺利完成。在项目管理中,PE(ProjectEvaluation)是指对项目进行评估和审查的过程。它可......
  • C# .NET 使用HttpClient,以及自定义Header中存在特殊字符的处理方式
    平常我们在使用HttpClient时,只需要创建加上设置调用接口地址就可以使用了,比如:HttpClienthttpClient=httpClientFactory.CreateClient();httpClient.BaseAddress=newUri(接口地址);httpClient.PostAsync(接口方法,HttpContent);但是,在自定义Header......