¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

Cómo enviar datos en formato JSON a otra aplicación utilizando un servicio web

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 18 Vistas
0
Cargando...

Hola a todos,

Estoy intentando enviar datos en formato Json a otra aplicación utilizando una llamada a un servicio web.

1. Obtener Token

2. Basado en el token, necesito enviar los datos.

He logrado obtener el token y también enviar los datos utilizando eso.

Aquí está el problema: Mi respuesta después de enviar los datos es 200 & (éxito: VERDADERO)

Pero al revisar la aplicación, solo aparece el archivo y no los datos.

Si hago lo mismo usando Postman, puedo ver los datos allí.

Aquí está mi fragmento de código,

Por favor, sugiere algo....

data: lv_url tipo cadena valor 'https://XXXXXXXXXX?transformation=JSON Ewaybill (Standard)-1.03'.


cl_http_client=>create_by_url(
exporting
url = lv_url " Destino lógico (especificado en la llamada a la función)
importing
client = l_http_client " Abstracción de Cliente HTTP
exceptions
argument_not_found = 1
plugin_not_active = 2
internal_error = 3
others = 4
).

l_http_client->request->set_method( if_http_request=>co_request_method_post ).
l_http_client->request->set_version( if_http_request=>co_protocol_version_1_1 ).

call method l_http_client->request->set_header_field
exporting
name = 'HOST'
value = 'live.encomply.com'.

call method l_http_client->request->set_header_field
exporting
name = 'Authorization'
value = ls_tkn_v.

call method l_http_client->request->set_header_field
exporting
name = 'app-id'
value = 'envoice'.

call method l_http_client->request->set_content_type
exporting
content_type = 'multipart/form-data'.

*********************************Cuerpo
multipart = l_http_client->request->add_multipart( ).

multipart->set_header_field(
name = if_http_header_fields=>content_disposition
value = 'form-data; name="transformation"'
).

* multipart->suppress_content_type( ).

multipart->set_cdata(
data = 'JSON Ewaybill (Standard)-1.03'
).

multipart = l_http_client->request->add_multipart( ).

g_file1_cont = jsondata. "contiene datos en formato json

vari = 'form-data; name="E-waybill-Json"; filename="'.
concatenate vari ex '"' into name.

g_file1_form_data = name .

multipart->set_header_field(
name = if_http_header_fields=>content_disposition
value = g_file1_form_data
).

multipart->set_content_type( 'application/json' ).

multipart = l_http_client->request->add_multipart( ).

lv_len = strlen( jsondata ).

multipart->set_cdata(
data = g_file1_cont
offset = 0
length = lv_len ). "01|XXXXXXXXXXX.... sep: cl_abap_char_utilities=>cr_lf


"PASO-4 : ENVIAR SOLICITUD HTTP
call method l_http_client->send
exceptions
http_communication_failure = 1
http_invalid_state = 2.

"PASO-5 : OBTENER RESPUESTA HTTP
call method l_http_client->receive
exceptions
http_communication_failure = 1
http_invalid_state = 2
http_processing_failed = 3.

"PASO-6 : Leer CÓDIGO DE RESPUESTA HTTP
call method l_http_client->response->get_status
importing
code = l_http_status_code
reason = l_status_text.

data lv_result2 type string.

lv_result2 = l_http_client->response->get_cdata( ).

Por favor, ayúdame...

Saludos,

Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

3 Respuestas

0
Cargando...

Hola Praveen,

Yo también estoy intentando hacer lo mismo. ¿Puedes por favor indicarme los pasos involucrados?

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Resuelto.

Cuando envío datos a la aplicación, los recibe como charset/utf-8 (no lo estoy configurando), lo cual la aplicación no admite, por lo que han agregado esa funcionalidad y ahora la aplicación puede cargar los datos.

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Resuelto.

Cuando envío datos a la aplicación, los recibe como charset/utf-8 (no lo estoy configurando), lo cual la aplicación no admite, por lo que han añadido esa funcionalidad y ahora la aplicación puede cargar los datos.

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019

contacto@primeinstitute.com

(+51) 1641 9379
(+57) 1489 6964

© 2024 Copyright. Todos los derechos reservados.

Desarrollado por Prime Institute

¡Hola! Soy Diana, asesora académica de Prime Institute, indícame en que curso estas interesado, saludos!
Hola ¿Puedo ayudarte?