*&---------------------------------------------------------------------*
*& Form FRM_SENT_FIELD
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> LV_FILE_XSTRING
*& <-- LV_OSS_ID
*&---------------------------------------------------------------------*
FORM FRM_SENT_FIELD USING P_LV_FILE_XSTRING
CHANGING P_LV_OSS_ID.


DATA:
lo_http_client TYPE REF TO IF_HTTP_CLIENT,
iv_url TYPE string.

DATA:
LV_FILE_XSTRING TYPE XSTRING,
LV_RESULT_STRING TYPE string,
LV_MESSAGE TYPE STRING,
LV_OSS_ID TYPE STRING,
lv_i TYPE I.


"sent data to cloud
DATA: L_URL TYPE STRING ,
L_PARAMS_STRING TYPE STRING ,
L_HTTP_CLIENT TYPE REF TO IF_HTTP_CLIENT ,
CLIENT TYPE REF TO IF_HTTP_CLIENT ,
L_RESULT TYPE STRING ,
L_STATUS_TEXT TYPE STRING ,
L_HTTP_STATUS_CODE TYPE I ,
L_HTTP_LENGTH TYPE I ,
L_PARAMS_XSTRING TYPE XSTRING ,
L_XSTRING TYPE XSTRING ,
L_IS_XML_TABLE TYPE STANDARD TABLE OF SMUM_XMLTB ,
L_IS_RETURN TYPE STANDARD TABLE OF BAPIRET2 ,
L_OUT_TAB TYPE STANDARD TABLE OF TBL1024,
PART TYPE REF TO IF_HTTP_ENTITY ,
IT_DATA1 TYPE STANDARD TABLE OF MARA,
IT_DATA TYPE XSTRING,
LV_LEN TYPE I.
DATA: IT_FILE_CONTENT_BINARY TYPE STANDARD TABLE OF SDOKCNTBIN,
PATH TYPE STRING VALUE '<PATH NAME>',
PATH1 TYPE STRING VALUE '<SUBPATH NAME>'.


iv_url = 'http://ehr-m.dev.qdama.cn:48888/ehrDownloadService/upload/ufs/batchUploadFile'.
"clear:LO_HTTP_CLIENT.
CALL METHOD CL_HTTP_CLIENT=>CREATE_BY_URL
EXPORTING
URL = IV_URL
IMPORTING
CLIENT = LO_HTTP_CLIENT
EXCEPTIONS
ARGUMENT_NOT_FOUND = 1
PLUGIN_NOT_ACTIVE = 2
INTERNAL_ERROR = 3.

CALL METHOD LO_HTTP_CLIENT->request->set_method( if_http_request=>co_request_method_post ).

CALL METHOD LO_HTTP_CLIENT->request->set_version( if_http_request=>co_protocol_version_1_0 ).

CALL METHOD LO_HTTP_CLIENT->request->if_http_entity~set_content_type(
EXPORTING
content_type = 'multipart/form-data' ).

CALL METHOD LO_HTTP_CLIENT->request->if_http_entity~set_formfield_encoding
EXPORTING
formfield_encoding = cl_http_request=>if_http_entity~co_encoding_raw.

part = LO_HTTP_CLIENT->request->if_http_entity~add_multipart( ).
CALL METHOD part->set_header_field
EXPORTING
name = 'content-disposition'
value = 'form-data; name="file"; filename="god.jpg";'.

CALL METHOD part->set_content_type
EXPORTING
content_type = 'application/x-jpg-compressed'.

LV_LEN = xstrlen( P_LV_FILE_XSTRING ).

CALL METHOD part->set_data
EXPORTING
data = P_LV_FILE_XSTRING
offset = 0
length = LV_LEN.


CALL METHOD LO_HTTP_CLIENT->send
EXCEPTIONS
http_communication_failure = 1
http_invalid_state = 2
http_processing_failed = 3
OTHERS = 4.

"读取远程服务返回的处理过结果。
CALL METHOD LO_HTTP_CLIENT->RECEIVE
EXCEPTIONS
HTTP_COMMUNICATION_FAILURE = 1
HTTP_INVALID_STATE = 2
HTTP_PROCESSING_FAILED = 3.
IF SY-SUBRC <> 0 .
LO_HTTP_CLIENT->GET_LAST_ERROR( IMPORTING MESSAGE = LV_MESSAGE ).
* E_RETURN-MESSAGE = LV_MESSAGE.
* E_RETURN-TYPE = 'E'.
RETURN.
ELSE.
LV_RESULT_STRING = LO_HTTP_CLIENT->RESPONSE->GET_CDATA( ).
* E_DATA = /UI2/CL_JSON=>GENERATE( JSON = LV_RESULT_STRING ).
ENDIF.

ENDFORM.