ABAP REST错误"序言中不允许包含内容",请提供帮助

2020-09-02 21:44发布

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

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


美好的一天

有人可以帮助我解决此错误。 我正在使用REST获取并发布"获取令牌和POST以将xml结构作为有效载荷发送。

在POST中,我得到提到的错误,并且很奇怪,因为不存在特殊字符,我在记事本++中编辑了文件,看起来一切都很好,我也测试了连接,并从中得到了答案,就像在POSTMAN Tool中一样,但是 我发送完整的xml报错

我没用ABAP幻想

这似乎是短语错误,我进行了转换,实际上看起来还不错,但是我得到了错误,我下载了xml并将其复制粘贴到POSTMAN TOOL中,并且效果很好。.

这是代码的一部分

cl_http_utility => set_request_uri(导出请求= http_client_firma-> request uri = urlfirma)。

*生成http请求标头
创建对象rest_client导出io_http_client = http_client_firma。
DATA(lo_request)= rest_client-> if_rest_client〜create_request_entity()。

*设置令牌和参数
CONCATENATE'Bearer'it_token INTO it_token RESPECTING BLANKS。
lo_request-> set_header_field(iv_name ='Authorization'iv_value = it_token)。
lo_request-> set_header_field(iv_name Content-Type'iv_value ='application/xml')。

然后将数据添加到zdata并执行请求

lo_request-> set_string_data(zdata)。

然后执行HTTP POST请求
TRY。
rest_client-> if_rest_resource〜post(lo_request)。
CATCH cx_rest_client_exception INTO DATA(lo_exception)。
DATA(lv_msg)=`HTTP POST失败: `&& lo_exception-> get_text()。
ENDTRY。

*获取并检查REST调用响应
DATA(return)= rest_client-> if_rest_client〜get_response_entity()。
DATA(status)= return-> get_header_field('〜status_code')。

这是我遇到序言错误的地方

DATA(response)= return-> get_string_data()。

状态码是406

如果我删除了xml的一部分,它将起作用,并且我得到错误消息或至少得到了正确的反馈,这正是我所期望的


任何帮助,请

error-prolog.jpg (26.3 kB)

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

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


美好的一天

有人可以帮助我解决此错误。 我正在使用REST获取并发布"获取令牌和POST以将xml结构作为有效载荷发送。

在POST中,我得到提到的错误,并且很奇怪,因为不存在特殊字符,我在记事本++中编辑了文件,看起来一切都很好,我也测试了连接,并从中得到了答案,就像在POSTMAN Tool中一样,但是 我发送完整的xml报错

我没用ABAP幻想

这似乎是短语错误,我进行了转换,实际上看起来还不错,但是我得到了错误,我下载了xml并将其复制粘贴到POSTMAN TOOL中,并且效果很好。.

这是代码的一部分

cl_http_utility => set_request_uri(导出请求= http_client_firma-> request uri = urlfirma)。

*生成http请求标头
创建对象rest_client导出io_http_client = http_client_firma。
DATA(lo_request)= rest_client-> if_rest_client〜create_request_entity()。

*设置令牌和参数
CONCATENATE'Bearer'it_token INTO it_token RESPECTING BLANKS。
lo_request-> set_header_field(iv_name ='Authorization'iv_value = it_token)。
lo_request-> set_header_field(iv_name Content-Type'iv_value ='application/xml')。

然后将数据添加到zdata并执行请求

lo_request-> set_string_data(zdata)。

然后执行HTTP POST请求
TRY。
rest_client-> if_rest_resource〜post(lo_request)。
CATCH cx_rest_client_exception INTO DATA(lo_exception)。
DATA(lv_msg)=`HTTP POST失败: `&& lo_exception-> get_text()。
ENDTRY。

*获取并检查REST调用响应
DATA(return)= rest_client-> if_rest_client〜get_response_entity()。
DATA(status)= return-> get_header_field('〜status_code')。

这是我遇到序言错误的地方

DATA(response)= return-> get_string_data()。

状态码是406

如果我删除了xml的一部分,它将起作用,并且我得到错误消息或至少得到了正确的反馈,这正是我所期望的


任何帮助,请

error-prolog.jpg (26.3 kB)
付费偷看设置
发送
1条回答
hongfeng1314
1楼-- · 2020-09-02 22:17

如果您说的话,那是可行的,如果您剪切XML,那么看来您的数据有问题,而不是程序有问题。 从技术上讲,一切正常。

一周热门 更多>