* 拼接XML的内表
DATA:
BEGIN OF wareqtext,
line TYPE c LENGTH 72,
END OF wareqtext,
itreqtext LIKE TABLE OF wareqtext.
* URL地址
DATA: l_url TYPE string .
* 拼接的XML
DATA: strreq TYPE string.
* 返回的XML
DATA: return_str TYPE string .
* 生成提交字符串的xml部分
CLEAR: strreq .
LOOP AT itreqtext INTO wareqtext.
IF strreq IS INITIAL .
strreq = wareqtext.
ELSE.
* 有些系统不会自动换行,特加上换行符
CONCATENATE strreq cl_abap_char_utilities=>newline wareqtext-line INTO strreq.
ENDIF.
ENDLOOP.
DATA: http_client TYPE REF TO if_http_client .
DATA: len TYPE i .
len = STRLEN( strreq ) .
CALL METHOD cl_http_client=>create_by_url
EXPORTING
url = l_url
IMPORTING
client = http_client.
http_client->propertytype_logon_popup = http_client->co_enabled .
CALL METHOD http_client->request->set_header_field
EXPORTING
name = 'Content-Type'
value = 'text/xml; charset=utf-8'.
CALL METHOD http_client->request->set_cdata
EXPORTING
data = strreq
offset = 0
length = len.
CALL METHOD http_client->send
EXCEPTIONS
http_communication_failure = 1
http_invalid_state = 2.
CALL METHOD http_client->receive
EXCEPTIONS
http_communication_failure = 1
http_invalid_state = 2
http_processing_failed = 3.
* 获取返回的数据
return_str = http_client->response->get_cdata( ).
CALL METHOD http_client->close.