Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

attaching file in API using form-data using https with form-data

0 Likes
5,011

Hi ,

I have requirement to attach the PDF and send some data through HTTPS API using form-data .I am facing issue in connecting .Kindly help on this.

CALL METHOD cl_http_client=>create_by_url
EXPORTING
url = host
ssl_id = 'ANONYM'
IMPORTING
client = client
EXCEPTIONS
argument_not_found = 1
plugin_not_active = 2
internal_error = 3
OTHERS = 4.


*set http method POST

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

client->request->set_version(
if_http_request=>co_protocol_version_1_0 ).


CALL METHOD client->request->set_header_field(
EXPORTING
name = 'Authorization'
value = lv_security ).

CALL METHOD client->request->if_http_entity~set_content_type
EXPORTING
* name = 'content-type'
* value = 'multipart/form-data'.
content_type = 'multipart/form-data'.

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

DATA part TYPE REF TO if_http_entity.
DATA: it_formulario TYPE tihttpnvp,
wa_formulario LIKE LINE OF it_formulario.


part = client->request->if_http_entity~add_multipart( ).

CALL METHOD part->set_header_field
EXPORTING
name = 'content-disposition'
value = 'form-data;name="status"'.

CALL METHOD part->append_cdata
EXPORTING
data = 'Paid'.

part = client->request->if_http_entity~add_multipart( ).

CALL METHOD part->set_header_field
EXPORTING
name = 'content-disposition'
value = 'form-data;name="ucid"'.

CALL METHOD part->append_cdata
EXPORTING
data = '987654321'.

*part = client->request->if_http_entity~add_multipart( ).

CALL METHOD part->set_header_field
EXPORTING
name = 'content-disposition'
value = 'form-data;name="billingMonth"'.

CALL METHOD part->append_cdata
EXPORTING
data = '6'.

*part = client->request->if_http_entity~add_multipart( ).
CALL METHOD part->set_header_field
EXPORTING
name = 'content-disposition'
value = 'form-data;name="billingYear"'.

CALL METHOD part->append_cdata
EXPORTING
data = '2020'.


*part = client->request->if_http_entity~add_multipart( ).
CALL METHOD part->set_header_field
EXPORTING
name = 'content-disposition'
value = 'form-data;name="totalAmount"'.

CALL METHOD part->append_cdata
EXPORTING
data = '29999.98'.

*part = client->request->if_http_entity~add_multipart( ).
CALL METHOD part->set_header_field
EXPORTING
name = 'content-disposition'
value = 'form-data;name="currencySymbol"'.

CALL METHOD part->append_cdata
EXPORTING
data = '$'.
part = client->request->if_http_entity~add_multipart( ).
CALL METHOD part->set_header_field
EXPORTING
name = 'content-disposition'
value = 'form-data;name="currencyCode"'.

CALL METHOD part->append_cdata
EXPORTING
data = 'USD'.

*part = client->request->if_http_entity~add_multipart( ).
CALL METHOD part->set_header_field
EXPORTING
name = 'content-disposition'
value = 'form-data;name="invoiceType"'.

CALL METHOD part->append_cdata
EXPORTING
data = 'FOD'.

*part = client->request->if_http_entity~add_multipart( ).
CALL METHOD part->set_header_field
EXPORTING
name = 'content-disposition'
value = 'form-data;name="fileUniqueId"'.

CALL METHOD part->append_cdata
EXPORTING
data = '123456789'.


*part = client->request->if_http_entity~add_multipart( ).
CALL METHOD part->set_header_field
EXPORTING
name = 'content-disposition'
value = 'form-data;name="fileName"'.

CALL METHOD part->append_cdata
EXPORTING
data = 'mainfile.txt'.


*part = client->request->if_http_entity~add_multipart( ).

CALL METHOD part->set_header_field
EXPORTING
name = 'content-disposition'
value = 'form-data; name="file"; filename="mainfile.txt";'.

*CALL METHOD part->set_content_type
* EXPORTING
* content_type = 'applicaiton/text'.

DATA: it_data TYPE xstring,

fichero(140) TYPE c,

len TYPE i.

fichero = '/sapinterface/dev/cic/inbox/invc-batch-sap-eipp-at10/work/mainfile.txt'.
OPEN DATASET fichero FOR INPUT IN BINARY MODE.

READ DATASET fichero INTO it_data.

len = xstrlen( it_data ).
CALL METHOD part->set_data
EXPORTING
data = it_data
offset = 0
length = len.

CALL METHOD client->send
EXPORTING
timeout = 200
EXCEPTIONS
http_communication_failure = 1
http_invalid_state = 2
http_processing_failed = 3
OTHERS = 4.


CALL METHOD client->receive
EXCEPTIONS
http_communication_failure = 1
http_invalid_state = 2
http_processing_failed = 3.


DATA: lo_request1 TYPE REF TO if_http_request,
lo_response1 TYPE REF TO if_http_response.


lo_response1 = client->response.

2 REPLIES 2
Read only

germain_azambou2
Explorer
0 Likes
3,284

Hi dhandayuthabani.pugazhendhi

Hi have the same requirement to send a PDF via REST Interface.How did u solved the problem?RegardsG
Read only

0 Likes
3,284

Hi gaza gazo,

did you solve your problem? I have the same issue and want also to send a PDF via REST Interface.

If you found a solutiuon, could you please post you coding? It will be a great help. Thanks very much.

BR Mouad