在WSO2 ESB/API管理器中检索HTTP响应代码

在WSO2 ESB/API管理器中检索HTTP响应代码,wso2,wso2esb,Wso2,Wso2esb,我使用的是WSO2 API管理器,我希望访问客户端传入API请求的详细信息(例如,进入API管理器的HTTP方法)以及来自API端点的响应。我按照以下文档中的方法编写了一个自定义中介类,该类在“in”(用于请求)和“Out”(用于响应)流上都得到调用: 似乎我可以从传递到中介器的MessageContext中获得所需的各种数据位,但我正在努力从API端点获取响应代码。有没有一种方法可以从MessageContext访问HTTP响应本身(及其所有的头和其他元素)?我偶然发现了PassThroug

我使用的是WSO2 API管理器,我希望访问客户端传入API请求的详细信息(例如,进入API管理器的HTTP方法)以及来自API端点的响应。我按照以下文档中的方法编写了一个自定义中介类,该类在“in”(用于请求)和“Out”(用于响应)流上都得到调用:

似乎我可以从传递到中介器的
MessageContext
中获得所需的各种数据位,但我正在努力从API端点获取响应代码。有没有一种方法可以从
MessageContext
访问HTTP响应本身(及其所有的头和其他元素)?我偶然发现了
PassThroughTransportUtils
类,它有一个
determinateHttpStatusCode
方法,我可以调用该方法,但我不确定这是否是最好的方法。

“HTTP\u SC”属性存储在Axis2MessageContext中,可按如下方式访问:

    org.apache.axis2.context.MessageContext msgContext = ((Axis2MessageContext) messageContext).getAxis2MessageContext();
    String httpStatusCode = (String) msgContext.getProperty(NhttpConstants.HTTP_SC);

如果未设置,则可以为空。

您知道在消息上下文中设置http状态代码的方法吗?我在in/out/fault序列中使用HTTP_SC HTTP属性得到空值,如:非常感谢您的响应,但这里的值是硬编码的。我想从响应中获取实际的http状态代码。我怎样才能做到这一点?现在,httpStatusCode保存http状态代码。