SAP CPI如何从HTTP捕获响应消息

2020-08-20 23:22发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)嗨 任何人都可以帮助我捕获HT...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


任何人都可以帮助我捕获HTTP响应

在这里,我被困在要从HTTP响应中获取要发送电子邮件的消息和状态,我在异常子过程中添加了内容修饰符和邮件适配器,在该子过程中它触发了异常并且还发送了邮件,但是我无法获得 我尝试使用CamelhttpStatusCode和CamelhttpText从响应中得到的消息,但我没有得到预期的相关消息

我已附上我从HTTP获得的响应和状态

请帮助我捕获消息和状态

致谢

Naveen V

(31.8 kB)
3条回答
Cikesha
2020-08-20 23:27

您必须使用CamelExceptionCaught属性,该属性可在ExceptionSubprocesses中访问。 该对象包含异常的信息。 如果发生HTTP异常,则可以通过getResponseBody()函数访问响应主体。 调用此函数,然后使用例如 XmlSlurper对其进行解析。

导入com.sap.gateway.ip.core.customdev.util.Message
 导入java.util.HashMap

 def消息processData(消息消息){
     def map = message.getProperties()
    //获取异常对象
     def ex = map.get(" CamelExceptionCaught")
     如果(ex!= null){
        //检查HTTP是否异常
         如果(ex.getClass()。getCanonicalName()。equals(" org.apache.camel.component.ahc.AhcOperationFailedException")){
            //获取HTTP状态码
             def httpStatusCode = ex.getStatusCode()
            //解析HTTP响应
             def xml =新的XmlSlurper()。parseText(ex.getResponseBody())
            //获取HTTP响应字段
             def status = xml。'**'。find {it.name()==" status"}。text()
             def message = xml。'**'。find {it.name()==" message"}。text()
            //设置邮件文字
             def mailText =""" HTTP状态码:$ {httpStatusCode}
 内容状态:$ {status}
 内容信息:$ {message}"""
            //设置正文(稍后在邮件接收者通道中使用正文)
             message.setBody(mailText)
         }
     }
     返回讯息
 }


 

一周热门 更多>