使用CL_HTTP_CLIENT将json字符串作为数据发送到外部api时,无效的请求主体错误。

2020-08-13 12:55发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)大家好, 使用CL_HTTP_...

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

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


大家好,

使用CL_HTTP_CLIENT将json数据发送到外部api时我们遇到问题。
JSON数据使用'/ui2/cl_json => serialize(data = ls_body compress = abap_true pretty_name =/ui2/cl_json => pretty_mode-camel_case)"。

当发送此JSON作为数据时,外部 api返回状态400,响应为
{" errorCode":" INVALID_REQUEST_BODY"," message":"请求正文为 缺少或格式不正确。解析值时遇到意外字符:\ u001f。路径",行0,位置0"。 }。

我们还在后端对这个JSON数据进行了字符串化处理,这可能是由于解析错误导致的,但是它没有用。
相同的字符串化数据尝试使用ajax通过浏览器控制台进行发送,并且确实可以正常工作。

任何人都可以告诉我们如何处理此json对象,并使用CL_HTTP_CLIENT将其发送到外部api。
注意:JSON STRING是深层嵌套的。

先谢谢了。

5条回答
小c菟菟
2020-08-13 13:23
一些想法:
  • 序列化后您到底对字符串做什么?
  • 进入调试器,然后右击 序列化后,打开JSON字符串,将其下载到文件中,并在一些更好的文本编辑器中检查该奇怪字符\ u001f。 如果在那儿,请检查确切的位置。 它可能来自某些用户输入值(通常,用户只是从Web,Word文档等各种来源复制并粘贴数据,并带有"奇怪"和"不可见"字符,然后将这些数据输入到SAP中,然后在尝试传递时会发生问题。 这些数据到不同的系统。)
  • 您还可以在线尝试一些" JSON验证器"(但是这些可能不会发现Unicode字符无效)。
  • 检查是否 没有/ui2/cl_json的某些非常旧的版本(文档+版本和SAP注释位于 https://wiki.scn.sap.com/wiki/display/Snippets/One+more+ABAP+to+JSON+Serializer+and+Deserializer

一周热门 更多>