含重音字符的XML元素发送时缺失结束标签问题排查求助
Oracle存储过程调用Azure APIM API时,含重音字符的XML请求体出现结束标签截断
我们的Oracle存储过程已调整为调用Azure API Management发布的API,目前遇到一个异常情况:
- 当XML请求体的字段包含重音字符时,存储过程发送的XML会出现结束标签截断问题
- 重音字符的数量和截断的字符数一一对应:比如含3个重音字符时,结束标签会截断3个字符
- 把重音字符替换为普通字符后,该问题完全消失
异常XML示例
<!-- 结束标签缺失,STREET字段含1个重音字符 --> <ent:ZIN_IN xmlns:ent="http://www.example.com/entities"> <ADDRESS> <STREET>STREET ÁBC</STREET> </ADDRESS> </ent:ZIN_IN <!-- 结束标签截断3个字符(IN>缺失),STREET字段含3个重音字符 --> <ent:ZIN_IN xmlns:ent="http://www.example.com/entities"> <ADDRESS> <STREET>STREET ÁÍÓ</STREET> </ADDRESS> </ent:ZIN_ <!-- 无异常,STREET字段无重音字符 --> <ent:ZIN_IN xmlns:ent="http://www.example.com/entities"> <ADDRESS> <STREET>STREET ABC</STREET> </ADDRESS> </ent:ZIN_IN>
日志获取方式
我们启用了APIM资源的诊断设置,通过以下Kusto查询获取到RequestBody中的异常内容:
ApiManagementGatewayLogs | where BackendUrl contains "entities/publish"
排查初步结果
使用Postman携带含重音字符的XML调用该APIM API时,完全没有异常,只有存储过程发起请求时才会出现这个问题。
求指导进一步的排查方向。
内容的提问来源于stack exchange,提问作者Sohlae
相关产品推荐
相关产品推荐

