CPI-REST API的HTTP接收器适配器-JSON有效负载错误

2020-08-26 21:07发布

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

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


您好,社区专家

在执行对外部REST API的POST时寻求解决问题的建议。 有效负载很简单,并且为JSON格式。

我正在使用HTTP接收器适配器,并尝试了几种配置,例如POST方法和Dynamic方法(勾选了Send Body标志)。 所有尝试都会导致HTTP 403错误。 我可以在监视器中看到有效负载似乎已正确传递到了Receiver适配器。 例如,有效负载的提取看起来像这样:

{"面试":{"标题":" Test1","到期日期":" 2019-12-06T10:10:10Z",......}}

但是,接收方第3方系统指示其日志显示以下类型的有效载荷,并带有转义符:

{" {\ n \ interview \":{\ n \" title \":\" Test1 \",\ n \" due_date \":\" 2019-12-06T10:10:10Z \", \ n .....}}

但是,当在诸如Postman之类的测试工具(POST到第三方API URL)中测试相同的源JSON有效负载时,结果是成功响应(200 OK)。

似乎CPI HTTP接收器适配器似乎通过添加转义字符来转换有效负载。 如何避免这种行为,如何跟踪正在发生的事情? CPI消息监视器(启用了跟踪)没有提供足够的详细信息。 它显示了错误之前的有效负载,但未提供适配器发送给API的详细信息。

还值得注意的是,从CPI到同一外部REST API(不同的端点但同一主机)的GET请求成功。 显然,区别在于GET不包含有效载荷主体。

任何输入将不胜感激。

谢谢。

洛朗

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

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


您好,社区专家

在执行对外部REST API的POST时寻求解决问题的建议。 有效负载很简单,并且为JSON格式。

我正在使用HTTP接收器适配器,并尝试了几种配置,例如POST方法和Dynamic方法(勾选了Send Body标志)。 所有尝试都会导致HTTP 403错误。 我可以在监视器中看到有效负载似乎已正确传递到了Receiver适配器。 例如,有效负载的提取看起来像这样:

{"面试":{"标题":" Test1","到期日期":" 2019-12-06T10:10:10Z",......}}

但是,接收方第3方系统指示其日志显示以下类型的有效载荷,并带有转义符:

{" {\ n \ interview \":{\ n \" title \":\" Test1 \",\ n \" due_date \":\" 2019-12-06T10:10:10Z \", \ n .....}}

但是,当在诸如Postman之类的测试工具(POST到第三方API URL)中测试相同的源JSON有效负载时,结果是成功响应(200 OK)。

似乎CPI HTTP接收器适配器似乎通过添加转义字符来转换有效负载。 如何避免这种行为,如何跟踪正在发生的事情? CPI消息监视器(启用了跟踪)没有提供足够的详细信息。 它显示了错误之前的有效负载,但未提供适配器发送给API的详细信息。

还值得注意的是,从CPI到同一外部REST API(不同的端点但同一主机)的GET请求成功。 显然,区别在于GET不包含有效载荷主体。

任何输入将不胜感激。

谢谢。

洛朗

付费偷看设置
发送
4条回答
shere_lin
1楼-- · 2020-08-26 21:50

您好 Laurent Doyen

CPI将有效载荷按原样发布,而没有转义。

HTTP代码403 表示目标服务器是 未授权该请求。 Postman中使用的用户与CPI中使用的用户相同吗?

希望这会有所帮助,

巴拉

jovirus
2楼-- · 2020-08-26 21:32

感谢巴拉。

是的,在Postman和CPI中使用完全相同的用户ID。 并且还使用相同的样本测试json负载作为输入。

接收方第三方告知我,他们的一端没有身份验证/授权问题。 但是,他们在日志中注意到的是,他们收到格式错误的邮件,如我的示例在我的第一封邮件中所示。 带有转义符(\ n)和双引号(\")的JSON消息。

正如我所说,我在CPI消息监视中看到JSON主体在HTTP接收器适配器之前的格式正确。 我看不到适配器发送的内容,但是接收器系统收到转义的消息。

不知道如何解决该问题,可能是问题所在。

此致

Laurent

宇峰Kouji
3楼-- · 2020-08-26 21:31

嗨Laurent,

我希望您到目前为止已经解决了该问题...如果没有,那么您可以按照以下方法跟踪请求:

1。 确保您使用的是chrome,然后在开发人员工具中(按F12键)可以检查请求有效负载,以确保JSON请求符合服务器的预期。

2.in 相同的开发人员工具窗口转到网络标签。。您会找到所有 有关来自服务器的请求和响应的请求和响应头的详细信息。 通过使用它,您将对请求和响应标头有清晰的了解。

3。 在使请求有效负载时,还可以使用console.log()函数将请求打印到开发人员工具的控制台。(如果使用的是Web IDE)

希望这会有所帮助。

此致

Ankit Gupta

风早神人
4楼-- · 2020-08-26 21:52

嗨Laurent,

如果您的问题仍未解决,请阅读此博客: https://blogs.sap.com/ ?p = 896320

我相信您可能会遇到类似的问题,其中CPI添加Linux行末,而Postman添加Windows行末。

致谢

萨拉吉

一周热门 更多>