我正在使用WSO2 API Manager,我希望访问客户端传入API请求的详细信息(进入API Manager,例如HTTP方法)以及来自API端点的响应。我按照以下文档中的方法编写了一个自定义中介类,它可以调用“In”(对于请求)和“Out”(对于响应)流程:
https://docs.wso2.org/display/AM160/Adding+a+Mediation+Extension
似乎我可以从传递到我的中介的MessageContext
获取我需要的各种数据,但是我很难从我的API端点获取响应代码。有没有办法从MessageContext
访问HTTP响应本身(及其所有标题和其他元素)?我偶然发现了PassThroughTransportUtils
类,它有一个determineHttpStatusCode
方法我可以调用,但我不确定这是最好的方法。
答案 0 :(得分:2)
" HTTP_SC"属性存储在Axis2MessageContext中,可以按如下方式访问:
org.apache.axis2.context.MessageContext msgContext = ((Axis2MessageContext) messageContext).getAxis2MessageContext();
String httpStatusCode = (String) msgContext.getProperty(NhttpConstants.HTTP_SC);
如果没有设置,可以为null。