Code: Alles auswählen.
* data declaration
data: sms_url type string.
data: v_version type string value '2.37.0'.
data: v_targets type string value 'xxxx'.
data: v_content type string value 'xxxx'.
data: lv_user type string value 'xxxx'.
data: lv_password type string value 'xxxx'.
data: client type ref to if_http_client.
data: w_result type string.
* concatenata request url
clear sms_url.
concatenate
'https://api.sipgate.net/my/events/sms/?version=' v_version '&targets=tel:' v_targets '&content=' v_content
into sms_url.
* create http client object
CALL METHOD cl_http_client=>create_by_url
EXPORTING
url = sms_url
IMPORTING
client = client
EXCEPTIONS
argument_not_found = 1
plugin_not_active = 2
internal_error = 3
OTHERS = 4.
if sy-subrc <> 0.
write: / 'Create failed, subrc = ', sy-subrc.
exit.
endif.
CALL METHOD client->request->set_method(
if_http_request=>co_request_method_post ).
client->request->set_header_field( name = '~request_method'
value = 'POST' ).
cl_http_utility=>set_request_uri( request = client->request
uri = sms_url ).
*for https connnections
client->propertytype_accept_cookie = 1.
CALL METHOD client->authenticate
EXPORTING
proxy_authentication = 'X'
username = lv_user
password = lv_password.
if sy-subrc <> 0.
write: / 'Login failed, subrc = ', sy-subrc.
exit.
endif.
client->send( ).
client->receive( ).
Code: Alles auswählen.
if connection-encode <> 0.
raise http_communitcation_failure.
endif.
Code: Alles auswählen.
*&---------------------------------------------------------------------*
*& Report YBC_HTTP_CLIENT_TEST
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ybc_http_client_test.
* data declarations
DATA: client TYPE REF TO if_http_client.
DATA:
host TYPE string VALUE 'http://www.abapforum.com',
service TYPE string VALUE '80',
errortext TYPE string.
DATA:
uri TYPE string,
subrc TYPE i,
version TYPE i,
request TYPE REF TO if_http_request.
DATA res_data TYPE xstring.
DATA:buffer TYPE xstring,
conv TYPE REF TO cl_abap_conv_in_ce,
buf TYPE TABLE OF tab512 WITH HEADER LINE,
bytes_read TYPE i,
fname TYPE string VALUE 'c:\temp\000.html'.
CALL METHOD cl_http_client=>create
EXPORTING
host = host
IMPORTING
client = client
EXCEPTIONS
argument_not_found = 1
plugin_not_active = 2
internal_error = 3
OTHERS = 4.
IF sy-subrc <> 0.
break bcuser.
ENDIF.
uri = 'http://www.abapforum.com/forum/viewtopic.php?f=2&t=17466&p=59315#p59315'.
cl_http_utility=>set_request_uri( request = client->request uri = uri ).
CALL METHOD client->send
*exporting timeout = timeout
EXCEPTIONS http_communication_failure = 1
http_invalid_state = 2
http_processing_failed = 3
OTHERS = 4.
IF sy-subrc <> 0.
CALL METHOD client->get_last_error
IMPORTING
code = subrc
message = errortext.
EXIT.
ENDIF.
CALL METHOD client->receive
EXCEPTIONS
http_communication_failure = 1
http_invalid_state = 2
http_processing_failed = 3
OTHERS = 4.
break bcuser.
CALL METHOD client->response->get_data
RECEIVING
data = res_data.
CALL METHOD client->close
EXCEPTIONS
http_invalid_state = 1
OTHERS = 2.
IF sy-subrc <> 0.
CALL METHOD client->get_last_error
IMPORTING
code = subrc
message = errortext.
EXIT.
ENDIF.
conv = cl_abap_conv_in_ce=>create(
encoding = 'DEFAULT'
endian = 'L'
input = res_data
).
DO.
CLEAR buf-wa.
CALL METHOD conv->read
EXPORTING
n = 512
IMPORTING
data = buf-wa
len = bytes_read.
APPEND buf.
IF bytes_read NE 512. EXIT. ENDIF.
ENDDO.
CALL METHOD cl_gui_frontend_services=>gui_download
EXPORTING
filename = fname
filetype = 'BIN'
CHANGING
data_tab = buf[]
EXCEPTIONS
file_write_error = 1
no_batch = 2
gui_refuse_filetransfer = 3
invalid_type = 4
no_authority = 5
unknown_error = 6
header_not_allowed = 7
separator_not_allowed = 8
filesize_not_allowed = 9
header_too_long = 10
dp_error_create = 11
dp_error_send = 12
dp_error_write = 13
unknown_dp_error = 14
access_denied = 15
dp_out_of_memory = 16
disk_full = 17
dp_timeout = 18
file_not_found = 19
dataprovider_exception = 20
control_flush_error = 21
not_supported_by_gui = 22
error_no_gui = 23
OTHERS = 24.
IF sy-subrc <> 0.
ENDIF.
CALL METHOD cl_gui_frontend_services=>execute
EXPORTING
document = fname
EXCEPTIONS
cntl_error = 1
error_no_gui = 2
bad_parameter = 3
file_not_found = 4
path_not_found = 5
file_extension_unknown = 6
error_execute_failed = 7
synchronous_failed = 8
not_supported_by_gui = 9
OTHERS = 10.
IF sy-subrc <> 0.
ENDIF.