*&---------------------------------------------------------------------*
*& Report YN_HTTPTEST
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT YN_HTTPTEST.
FORM FRM_CALL_WEBAPI USING IV_JSON_INPUT IV_SERVICE_URL CHANGING EV_JSON_OUTPUT.
DATA: LO_HTTP_CLIENT TYPE REF TO IF_HTTP_CLIENT,
GV_JSON_OUT TYPE STRING,
LV_URL TYPE STRING,
LV_LEN TYPE I.
LV_URL = IV_SERVICE_URL.
"创建客户端请求
CALL METHOD CL_HTTP_CLIENT=>CREATE_BY_URL
EXPORTING
URL = LV_URL
IMPORTING
CLIENT = LO_HTTP_CLIENT
EXCEPTIONS
ARGUMENT_NOT_FOUND = 1
PLUGIN_NOT_ACTIVE = 2
INTERNAL_ERROR = 3
OTHERS = 4.
IF SY-SUBRC <> 0.
"lv_subrc = sy-subrc.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO WITH
SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
EXIT.
ENDIF.
"设定传输请求内容格式以及编码格式
LO_HTTP_CLIENT->REQUEST->SET_CONTENT_TYPE( CONTENT_TYPE = 'application/json; charset=utf-8' ).
"设定调用服务
LO_HTTP_CLIENT->REQUEST->SET_METHOD( IF_HTTP_REQUEST=>CO_REQUEST_METHOD_POST ).
"设置待传输内容长度
LV_LEN = STRLEN( IV_JSON_INPUT ).
"设置调用方法
CALL METHOD LO_HTTP_CLIENT->REQUEST->SET_HEADER_FIELD
EXPORTING
NAME = '~request_method'
VALUE = 'POST'.
"设置传入字符串
CALL METHOD LO_HTTP_CLIENT->REQUEST->SET_CDATA
EXPORTING
DATA = IV_JSON_INPUT
OFFSET = 0
LENGTH = LV_LEN.
"发送数据
LO_HTTP_CLIENT->SEND(
EXCEPTIONS
HTTP_COMMUNICATION_FAILURE = 1
HTTP_INVALID_STATE = 2 ).
"接收返回
LO_HTTP_CLIENT->RECEIVE(
EXCEPTIONS
HTTP_COMMUNICATION_FAILURE = 1
HTTP_INVALID_STATE = 2
HTTP_PROCESSING_FAILED = 3 ).
"提取返回字符串
EV_JSON_OUTPUT = LO_HTTP_CLIENT->RESPONSE->GET_CDATA( ).
"将字符串中的回车符替换,否则abap将会识别为#
REPLACE ALL OCCURRENCES OF REGEX '\n' IN EV_JSON_OUTPUT WITH SPACE.
ENDFORM.
DATA : GV_SERVICE_URL TYPE STRING VALUE 'http://192.168.2.247:8129/api/TestMail',
GV_JSON_IN TYPE STRING VALUE '{"SMessage": "SAP发送的消息1111111", "SSubject": "SAP发送的主题111111111"}',
GV_JSON_OUT TYPE STRING.
START-OF-SELECTION.
"调用webapi
PERFORM FRM_CALL_WEBAPI USING GV_JSON_IN GV_SERVICE_URL CHANGING GV_JSON_OUT.
END-OF-SELECTION.
WRITE GV_JSON_OUT.
ABAP 访问OData 服务
最新推荐文章于 2023-12-15 14:04:00 发布