¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

Como enviar dados em formato JSON para outra aplicação utilizando um serviço web

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

Olá a todos,

Estou tentando enviar dados no formato Json para outro aplicativo usando uma chamada a um serviço web.

1. Obter Token

2. Com base no token, preciso enviar os dados.

Consegui obter o token e também enviar os dados usando ele.

Aqui está o problema: Minha resposta após enviar os dados é 200 & (sucesso: TRUE)

Mas ao verificar o aplicativo, só o arquivo aparece e não os dados.

Se eu fizer a mesma coisa usando o Postman, consigo ver os dados lá.

Aqui está meu trecho de código,

Por favor, sugira algo....

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


cl_http_client=>create_by_url(
exporting
url = lv_url " Destino lógico (especificado na chamada da função)
importing
client = l_http_client " Abstração 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'.

*********************************Corpo
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. "contém dados no 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


"PASSO-4 : ENVIAR SOLICITAÇÃO HTTP
call method l_http_client->send
exceptions
http_communication_failure = 1
http_invalid_state = 2.

"PASSO-5 : OBTER RESPOSTA HTTP
call method l_http_client->receive
exceptions
http_communication_failure = 1
http_invalid_state = 2
http_processing_failed = 3.

"PASSO-6 : Ler CÓDIGO DE RESPOSTA HTTP
call method l_http_client->response->get_status
importing
code = l_http_status_code
reason = l_status_text.

data lv_result2 tipo string.

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

Por favor, ajude-me...

Saudações,

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

3 Respuestas

0
Cargando...

Olá Praveen,

Também estou tentando fazer o mesmo. Pode me indicar por favor os passos envolvidos?

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

Resolvido.

Quando envio dados para a aplicação, eles são recebidos como charset/utf-8 (não estou configurando isso), o que a aplicação não suporta, então eles adicionaram essa funcionalidade e agora a aplicação pode carregar os dados.

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

Resolvido.

Quando envio dados para o aplicativo, ele os recebe como charset/utf-8 (não estou configurando), o que o aplicativo não suporta, então eles adicionaram essa funcionalidade e agora o aplicativo pode carregar os dados.

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?