点击此处---> 群内免费提供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不包含有效载荷主体。
任何输入将不胜感激。
谢谢。
洛朗
您好 Laurent Doyen ,
CPI将有效载荷按原样发布,而没有转义。
HTTP代码403 表示目标服务器是 未授权该请求。 Postman中使用的用户与CPI中使用的用户相同吗?
希望这会有所帮助,
巴拉
感谢巴拉。
是的,在Postman和CPI中使用完全相同的用户ID。 并且还使用相同的样本测试json负载作为输入。
接收方第三方告知我,他们的一端没有身份验证/授权问题。 但是,他们在日志中注意到的是,他们收到格式错误的邮件,如我的示例在我的第一封邮件中所示。 带有转义符(\ n)和双引号(\")的JSON消息。
正如我所说,我在CPI消息监视中看到JSON主体在HTTP接收器适配器之前的格式正确。 我看不到适配器发送的内容,但是接收器系统收到转义的消息。
不知道如何解决该问题,可能是问题所在。
此致
Laurent
嗨Laurent,
我希望您到目前为止已经解决了该问题...如果没有,那么您可以按照以下方法跟踪请求:
1。 确保您使用的是chrome,然后在开发人员工具中(按F12键)可以检查请求有效负载,以确保JSON请求符合服务器的预期。
2.in 相同的开发人员工具窗口转到网络标签。。您会找到所有 有关来自服务器的请求和响应的请求和响应头的详细信息。 通过使用它,您将对请求和响应标头有清晰的了解。
3。 在使请求有效负载时,还可以使用console.log()函数将请求打印到开发人员工具的控制台。(如果使用的是Web IDE)
希望这会有所帮助。
此致
Ankit Gupta
嗨Laurent,
如果您的问题仍未解决,请阅读此博客: https://blogs.sap.com/ ?p = 896320
我相信您可能会遇到类似的问题,其中CPI添加Linux行末,而Postman添加Windows行末。
致谢
萨拉吉
一周热门 更多>