点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
大家好,
我收到一条错误消息"服务器拒绝了此请求,因为请求实体的格式不受请求的方法所请求的资源支持。" 当我将XML文件发送到API时。
我的代码:
呼叫方法cl_http_client => create_by_destination
导出
destination ='INTEGRATION'
IMPORTING
客户端= http_client
EXCEPTIONS
arguments_not_found = 1
destination_not_found = 2
destination_no_authority = 3
plugin_not_active = 4
internal_error = 5
其他=6。
如果sy-subrc <> 0。
ENDIF。
呼叫方法http_client-> request-> set_header_field
导出
name ='〜request_method'
value ='POST'。
呼叫方法http_client-> request-> set_header_field
导出
name ='Content-Type'
value ='text/xml; charset = utf-8'。
呼叫方法http_client-> request-> set_cdata
导出
数据= wf_string
偏移量= 0
长度= rlength。
呼叫方法http_client->发送
例外情况
http_communication_failure = 1
http_invalid_state = 2
http_processing_failed = 3
其他= 4。
呼叫方法http_client->接收
例外情况
http_communication_failure = 1
http_invalid_state = 2
http_processing_failed = 3
其他= 4。
wf_string1 = http_client->响应-> get_cdata()。
我的XML文件是:
清除wf_string。
链接wf_string
'<?xml version =" 1.0" encoding =" UTF-8" standalone =" yes"?>'
'
'
'
'
'
'
'
'
'
'
'
'<状态> <值> A14 值> 状态>>
'
'
'
'
''
''
INTO wf_string。
联结测试:
我不知道问题出在哪里,我这样做的方式与论坛中的其他示例完全相同。
非常感谢您的帮助!
test-con.jpg (56.0 kB)
编辑我的答案可能是完全错误的,参见下面Tibor的评论。
在您的屏幕截图中,错误是405"不允许使用方法",并且仅允许POST(allow = POST)。 这意味着您"说" POST的方式不正确:
相反,使用:
PS:您在真实的HTTP请求方法和SAP"伪头字段"〜request_method之间造成了混淆。 当传入的HTTP请求到达SAP时,后者是从HTTP请求标头字段自动得出的。 它用于简化ICF请求处理程序对请求的处理。
PS:我不明白您为什么说这是XML问题(在请求正文中)。
对不起,我没有注意到屏幕截图源自SM59。
感谢您的澄清。 424并没有明确地与"文件格式"相关(维基百科:该请求失败,因为它依赖于另一个请求,并且该请求失败了(例如PROPPATCH))。
所以,我的回答是完全错误的:(
我也可能对set_header_field EXPORTING name ='〜request_method'value ='POST'犯了一个错误。 可能与http_client-> request-> set_method(if_http_request => co_request_method_post)具有相同的行为。
方法SET_CDATA中的参数LENGTH是可选的,默认值为-1(自动确定长度)
您在代码中发送了一个长度为0的空请求正文。 从服务器解释为http错误415。
它不起作用,我有相同的消息:(
我认为问题是" value ='text/xml; charset = utf-8'。"我更改了它 通过"值='application/xml'。",我就连接了。
但是,现在我有另一条错误消息:" 424依赖失败"。 SAP还是API还是有问题?
感谢您的帮助。
Fernando
这是XML文件的格式问题。
关闭。
一周热门 更多>