in src/zadf/zcl_adf_service_blob.clas.abap [0:0]
METHOD send.
DATA : lo_response TYPE REF TO if_rest_entity,
lo_request TYPE REF TO if_rest_entity,
lv_sas_token TYPE string,
lv_msg TYPE string,
lcx_adf_service TYPE REF TO zcx_adf_service.
IF go_rest_api IS BOUND.
IF gv_sas_token IS INITIAL.
TRY.
get_sas_token( EXPORTING iv_baseaddress = gv_uri
RECEIVING rv_sas_token = lv_sas_token ).
gv_sas_token = lv_sas_token.
CATCH zcx_adf_service INTO lcx_adf_service.
lv_msg = lcx_adf_service->get_text( ).
MESSAGE lv_msg TYPE 'I'.
ENDTRY.
CASE gv_blob_type.
WHEN gc_append_blob.
CONCATENATE gv_sas_token gc_comp_appendblock INTO gv_sas_token.
go_rest_api->zif_rest_framework~set_uri( gv_sas_token ).
WHEN gc_block_blob.
go_rest_api->zif_rest_framework~set_uri( gv_sas_token ).
ENDCASE.
ELSE.
IF NOT gv_sas_token CS gc_comp_appendblock AND
gv_blob_type EQ gc_append_blob.
CONCATENATE gv_sas_token gc_comp_appendblock INTO gv_sas_token.
ENDIF.
go_rest_api->zif_rest_framework~set_uri( gv_sas_token ).
ENDIF.
CASE gv_blob_type.
WHEN gc_block_blob.
add_request_header( iv_name = 'x-ms-blob-type' iv_value = gc_block_blob ).
add_request_header( iv_name = 'Content-Type' iv_value = 'text/plain' ).
WHEN gc_append_blob.
add_request_header( iv_name = 'x-ms-version' iv_value = '2016-05-31' ).
add_request_header( iv_name = 'Content-Length' iv_value = '1048' ).
ENDCASE.
go_rest_api->zif_rest_framework~set_binary_body( request ).
**Rest API call to get response from Azure Destination
lo_response = go_rest_api->zif_rest_framework~execute( io_entity = lo_request async = gv_asynchronous is_retry = gv_is_try ).
ev_http_status = go_rest_api->get_status( ).
IF lo_response IS BOUND.
response = lo_response->get_string_data( ).
ELSE.
RAISE EXCEPTION TYPE zcx_adf_service
EXPORTING
textid = zcx_adf_service=>restapi_response_not_found
interface_id = gv_interface_id.
ENDIF.
ENDIF.