在WSO2 EI中如何获取HTTP响应的状态码描述信息?
在WSO2 EI中获取HTTP状态码名称的方法
WSO2 EI没有内置直接获取HTTP状态码对应文本描述的函数,你可以通过以下两种方式实现需求:
方法一:使用脚本中介自定义状态码映射
通过Script Mediator编写脚本,基于已获取的$axis2:HTTP_SC状态码,匹配对应的文本描述。
示例(JavaScript脚本)
<script language="js"> var sc = mc.getProperty('HTTP_SC'); var statusText; switch(sc) { case '200': statusText = 'OK'; break; case '400': statusText = 'Bad Request'; break; case '404': statusText = 'Not Found'; break; case '500': statusText = 'Internal Server Error'; break; // 可根据业务需求添加更多状态码映射 default: statusText = 'Unknown Status'; } mc.setProperty('HTTP_SC_TEXT', statusText); </script>
之后可通过$ctx:HTTP_SC_TEXT获取状态码对应的文本描述,将其纳入响应即可在Postman中展示。
方法二:使用属性中介结合条件判断
若不想用脚本,也可以用Property Mediator配合Filter Mediator实现条件映射:
示例
<!-- 先将状态码存入属性 --> <property expression="$axis2:HTTP_SC" name="HTTP_SC" scope="default" type="STRING"/> <!-- 映射200状态 --> <filter condition="$ctx:HTTP_SC == '200'" regex="true"> <then> <property name="HTTP_SC_TEXT" scope="default" type="STRING" value="OK"/> </then> </filter> <!-- 映射500状态 --> <filter condition="$ctx:HTTP_SC == '500'" regex="true"> <then> <property name="HTTP_SC_TEXT" scope="default" type="STRING" value="Internal Server Error"/> </then> </filter> <!-- 其他状态码可继续添加对应Filter节点 -->
同样,通过$ctx:HTTP_SC_TEXT获取文本描述,将其返回给请求端即可。
注意:映射表需要你根据实际场景补充常用HTTP状态码的对应文本,确保覆盖业务中可能出现的状态。
内容的提问来源于stack exchange,提问作者Boppena Prashanth
相关产品推荐
相关产品推荐

