状态415 HTTP-XML

2020-09-25 03:37发布

         点击此处--->   EasySAP.com群内免费提供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"?>'
''
' ''1117'''
'''B03'''
'''A42'''
'''17V'''
'''A40'''
'''17'''
'''1'''< br>'''2016-07-06T16:32:38Z'''

''
'''FR_517320'''
'''FR_517320'''

'<状态> <值> A14 >
'''本地'''

'''2018-02-12'''

''''''
'''''''''''
''
''
INTO wf_string。

联结测试:

我不知道问题出在哪里,我这样做的方式与论坛中的其他示例完全相同。

非常感谢您的帮助!

test-con.jpg (56.0 kB)

         点击此处--->   EasySAP.com群内免费提供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"?>'
''
' ''1117'''
'''B03'''
'''A42'''
'''17V'''
'''A40'''
'''17'''
'''1'''< br>'''2016-07-06T16:32:38Z'''

''
'''FR_517320'''
'''FR_517320'''

'<状态> <值> A14 >
'''本地'''

'''2018-02-12'''

''''''
'''''''''''
''
''
INTO wf_string。

联结测试:

我不知道问题出在哪里,我这样做的方式与论坛中的其他示例完全相同。

非常感谢您的帮助!

test-con.jpg (56.0 kB)
付费偷看设置
发送
6条回答
风早神人
1楼-- · 2020-09-25 04:05

编辑我的答案可能是完全错误的,参见下面Tibor的评论。

在您的屏幕截图中,错误是405"不允许使用方法",并且仅允许POST(allow = POST)。 这意味着您"说" POST的方式不正确:

呼叫方法http_client-> request-> set_header_field导出名称='〜request_method'值='POST'。

相反,使用:

 http_client-> request-> set_method(if_http_request => co_request_method_post)。

PS:您在真实的HTTP请求方法和SAP"伪头字段"〜request_method之间造成了混淆。 当传入的HTTP请求到达SAP时,后者是从HTTP请求标头字段自动得出的。 它用于简化ICF请求处理程序对请求的处理。

PS:我不明白您为什么说这是XML问题(在请求正文中)。

黑丝骑士
2楼-- · 2020-09-25 04:08

对不起,我没有注意到屏幕截图源自SM59。

感谢您的澄清。 424并没有明确地与"文件格式"相关(维基百科:该请求失败,因为它依赖于另一个请求,并且该请求失败了(例如PROPPATCH))。

所以,我的回答是完全错误的:(

我也可能对set_header_field EXPORTING name ='〜request_method'value ='POST'犯了一个错误。 可能与http_client-> request-> set_method(if_http_request => co_request_method_post)具有相同的行为。

huskylover
3楼-- · 2020-09-25 03:49

方法SET_CDATA中的参数LENGTH是可选的,默认值为-1(自动确定长度)

您在代码中发送了一个长度为0的空请求正文。 从服务器解释为http错误415。

呼叫方法http_client-> request-> set_cdata
  出口
  数据= wf_string
  偏移量= 0
  长度= rlength。
Bunny_CDM
4楼-- · 2020-09-25 03:50

它不起作用,我有相同的消息:(

SAP浪
5楼-- · 2020-09-25 03:44

我认为问题是" value ='text/xml; charset = utf-8'。"我更改了它 通过"值='application/xml'。",我就连接了。

但是,现在我有另一条错误消息:" 424依赖失败"。 SAP还是API还是有问题?

感谢您的帮助。

Fernando

悠然的二货
6楼-- · 2020-09-25 03:57

这是XML文件的格式问题。

关闭。

一周热门 更多>