如何从WSO2 APIM中的自定义处理程序获取有效负载大小

如何从WSO2 APIM中的自定义处理程序获取有效负载大小,wso2,wso2-am,Wso2,Wso2 Am,我试图通过WSO2 APIM1.10.0中的自定义处理程序从每种内容类型的请求和响应中获取有效负载大小 通过引用,我可以通过两种方式获得有效负载大小: 获取标题内容长度(在第127行) 构建消息并获取正文长度(在第132行) 但我认为这两种方式都可能有问题 用户在调用API时可能给出不正确的内容长度 API内容类型可能不可预测 那么,如何从请求和响应中获取有效负载大小呢?您可以使用脚本中介来实现这一点。 消息的有效负载长度可以通过按顺序和按顺序调用脚本中介内部的mc.getPayloadXML(

我试图通过WSO2 APIM1.10.0中的自定义处理程序从每种内容类型的请求和响应中获取有效负载大小

通过引用,我可以通过两种方式获得有效负载大小:

  • 获取标题内容长度(在第127行)
  • 构建消息并获取正文长度(在第132行)
  • 但我认为这两种方式都可能有问题

  • 用户在调用API时可能给出不正确的内容长度
  • API内容类型可能不可预测

  • 那么,如何从请求和响应中获取有效负载大小呢?

    您可以使用脚本中介来实现这一点。 消息的有效负载长度可以通过按顺序和按顺序调用脚本中介内部的
    mc.getPayloadXML()
    来接收。
    有关API管理器中中介扩展的更多信息和使用方法,请参阅本文。

    感谢回复。我可以从日志文件中获取正文长度。但是有没有办法从我的java自定义处理程序中获取正文长度呢?在读取消息之前,您可以通过在handleResponse和handleRequest方法中构建消息来访问处理程序中的有效负载。但据我所知,您无法从synapse.MessageContext获取有效负载大小,因为那里没有实现此类方法。请参考为在自定义处理程序中访问有效负载提供的答案。感谢您的回复,您提供的参考似乎是通过使用RelayUtils对象来构建消息。但是RelayUtils对象看起来只支持XML格式,有没有办法支持任何自定义超媒体类型?