Code: Alles auswählen.
CALL METHOD l_client->request->set_compression
EXPORTING
disable_extended_checks = ABAP_FALSE
options = 0. " oder 4 ?
Code: Alles auswählen.
*&---------------------------------------------------------------------*
*& Report YBC_ARCHIVELINK_MULTI *
*& *
*&---------------------------------------------------------------------*
*& *
*& *
*&---------------------------------------------------------------------*
REPORT ybc_archivelink_multi .
CONSTANTS crlf(2) VALUE %_cr_lf.
DATA: subrc TYPE i,
errortext TYPE string.
DEFINE m_check_err.
if sy-subrc <> 0.
call method l_client->get_last_error
importing
code = subrc
message = errortext.
message s000(sr) with errortext.
exit.
endif.
END-OF-DEFINITION.
DATA:
l_entity TYPE REF TO if_http_entity,
l_client TYPE REF TO if_http_client ,
http_url TYPE string,
l_content TYPE xstring.
* Build the url string based on input
*http_url = 'http://192.168.216.54/HttpHandler/test.sample?Q=test'.
*http_url = 'http://192.168.216.54/Echo/test.sample?Q=test'.
http_url = 'http://info.gate2app.com/test.sample?Q=test'.
* Creation of new IF_HTTP_Client object
CALL METHOD cl_http_client=>create_by_url
EXPORTING
url = http_url
IMPORTING
client = l_client
EXCEPTIONS
argument_not_found = 1
plugin_not_active = 2
internal_error = 3
OTHERS = 4.
* Wir arbeiten für die Post
l_client->request->set_header_field( name = '~request_method' value = 'POST' ).
* Setzte Header Parameter für MULTIPART - Übertragung
CALL METHOD l_client->request->set_header_field
EXPORTING
name = 'Content-type'
value = 'multipart/mixed'.
*=================================================
* Erzeuge ersten MULTIPART Abschnitt
CALL METHOD l_client->request->add_multipart
RECEIVING
entity = l_entity.
* Art des Inhalts im aktuellen Abschnitt
CALL METHOD l_entity->set_header_field
EXPORTING
name = 'Content-type'
value = 'application/x-www-form-urlencoded'.
* Der Inhalt
DATA l_test TYPE string.
l_test =
'AppVersion=1.0&;AcceptUPSLicenseAgreement=Yes&ResponseType=application/x-ups-pld&VersionNumber=V4R1&UserId=xxx&Password=xxx'.
CONCATENATE l_test crlf INTO l_test.
* Hänge den Inhalt in den aktuellen Abschnitt
CALL METHOD l_entity->set_cdata
EXPORTING
data = l_test.
*=================================================
* Erzeuge zweiten MULTIPART Abschnitt
CALL METHOD l_client->request->add_multipart
RECEIVING
entity = l_entity.
* Art des Inhalts im aktuellen Abschnitt
CALL METHOD l_entity->set_header_field
EXPORTING
name = 'Content-type'
value = 'application/x-ups-binary'.
* Der Inhalt
l_test =
'020082 2.0 2002101700000000000010500 000000001*AA0A1754 US 1234567002000001*BA1z1234560100002352 00001+0000000000000010 +0000000000000000LBS01PRE10 '.
CONCATENATE l_test crlf INTO l_test.
* Hänge den Inhalt in den aktuellen Abschnitt
CALL METHOD l_entity->set_cdata
EXPORTING
data = l_test.
*=================================================
* sending/receiving und FEUER FREI
CALL METHOD l_client->send
EXCEPTIONS
http_communication_failure = 1
http_invalid_state = 2
http_processing_failed = 3
OTHERS = 4.
m_check_err.
CALL METHOD l_client->receive
EXCEPTIONS
http_communication_failure = 1
http_invalid_state = 2
http_processing_failed = 3.
m_check_err.
DATA http_rc TYPE i.
***http status code
l_client->response->get_status( IMPORTING code = http_rc ).
CALL METHOD l_client->response->get_data
* EXPORTING
* OFFSET = 0
* LENGTH = -1
* VIRUS_SCAN_PROFILE =
RECEIVING
data = l_content.
DATA xlen TYPE i.
DATA traw TYPE TABLE OF logdata.
DATA ffile TYPE string VALUE 'c:\tmp\httpBody.txt'.
CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'
EXPORTING
buffer = l_content
append_to_table = ' '
IMPORTING
output_length = xlen
TABLES
binary_tab = traw.
CALL METHOD cl_gui_frontend_services=>gui_download
EXPORTING
bin_filesize = xlen
filename = ffile
filetype = 'BIN'
* APPEND = SPACE
* WRITE_FIELD_SEPARATOR = SPACE
* HEADER = '00'
* TRUNC_TRAILING_BLANKS = SPACE
* WRITE_LF = 'X'
* COL_SELECT = SPACE
* COL_SELECT_MASK = SPACE
* DAT_MODE = SPACE
* CONFIRM_OVERWRITE = SPACE
* NO_AUTH_CHECK = SPACE
* CODEPAGE = SPACE
* IGNORE_CERR = ABAP_TRUE
* REPLACEMENT = '#'
* WRITE_BOM = SPACE
* TRUNC_TRAILING_BLANKS_EOL = 'X'
* WK1_N_FORMAT = SPACE
* WK1_N_SIZE = SPACE
* WK1_T_FORMAT = SPACE
* WK1_T_SIZE = SPACE
* IMPORTING
* FILELENGTH =
CHANGING
data_tab = traw
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.
break sapuser.