SAP PO PI Get Response from Payload and split(获取响应负载-(非标准JSON格式非XML格式)并拆分到不同字段)


需求

有个接口需求,使用rest协议,通过PO调用接口时,把接口响应内容拆分到不同字段,输出为JSON格式
响应内容如下:既不是json格式 也不是xml格式 无法自动在receiver中转换为message mapping所需的xml格式
在这里插入图片描述


处理办法

我们手动把响应内容转换为xml格式,之后就能在message mapping中使用
用一个string承接响应内容
在这里插入图片描述

参考社区中的方法
https://answers.sap.com/questions/13129930/rest-receiver-adapter-sync-binary-response-how-to.html?childToView=13129963
在这里插入图片描述

这样就能把响应内容放在message mapping中

再使用UDF把该字符串拆分到对应字段

在这里插入图片描述


UDF

定义:
在这里插入图片描述

拆分代码:

public String splitParameters(String keyname, String response, Container container) throws StreamTransformationException{
String str = "";
if (response != null) {
        
         //去除特殊字符 空格等
        response.replaceAll(" ", "");
    response.replaceAll("\\s*|\r|\n|\t","");
    response.replaceAll("\n","");

    String[] ws = response.split("&");

    if (keyname == "status") {
        String[] sp = ws[0].split("=");
      str = sp[1];
    }
    else if (keyname == "enc_response") {
        String[] sp = ws[1].split("=");
        str = sp[1];
    }
    else if (keyname == "enc_error_code") {
       try {
                if (ws[2] != null)  {
                        String[] sp = ws[2].split("=");
                        str = sp[1];
                }
            } catch (Exception e) {
                // TODO: handle exception
            }
    }
    }
return str;
}

测试结果

在这里插入图片描述
已实现


总结

对于响应内容不规范的接口处理很有帮助
以上

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ggreekn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值