[SOLUCIONADO] Petición a WebService desde Oracle

Iniciado por karurosu, Marzo 25, 2019, 07:18:54 PM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Marzo 25, 2019, 07:18:54 PM Ultima modificación: Marzo 25, 2019, 10:36:46 PM por Gabriela
Buenas tardes.

Quisiera ver si alguien me puede ayudar con algún ejemplo ya que he estado buscando y no he tenido éxito al querer comunicarme con un webservice y recibir su respuesta en Json, todo esto desde pl sql, actualmente cuento con la versión 10g de oracle.

¡gracias y saludos!

Ya está solucionado, dejo el código por si alguien lo necesita alguna vez:

declare
req utl_http.req;
res utl_http.resp;
url varchar2(4000) := 'enlace del webservice';
name varchar2(4000);
buffer varchar2(4000);
--content varchar2(4000) := '{""}';--algunos parámetros que se deseen enviar en formato json
respuestaTexto varchar2(30000);

begin

req := utl_http.begin_request(url, 'GET', 'HTTP/1.1'); --El método de conexión ya sea GET o POST
utl_http.set_header(req, 'user-agent', 'mozilla/4.0');
utl_http.set_header(req, 'content-type', 'application/json');
--utl_http.set_header(req, 'Content-Length', length(content)); --se añade a la cabecera el contenido json que enviamos si queremos

--utl_http.write_text(req, content);

res := utl_http.get_response(req);
UTL_HTTP.read_text(res, respuestaTexto);
DBMS_OUTPUT.put_line(respuestaTexto); --se imprime la respuesta (json en mi caso) en la consola

dbms_output.put_line('Response> status_code: "'   ||res.status_code  || '"');
dbms_output.put_line('Response> reason_phrase: "' ||res.reason_phrase || '"');
dbms_output.put_line('Response> http_version: "'  ||res.http_version  || '"');
   
end;

Nota: Estoy probando ahora con https pero al parecer tengo que habilitar la opción para que admita TLS v.1 y habilitar cifrados RC4 o actualizar la versión de oracle debido a un error general de las versiones inferiores a la 12, sin embargo con un werbservice http funciona perfecto.

¡Saludos!


@No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Muchas gracias por dejarnos la solución. Precisamente de eso se trata, de compartir solidariamente.

Saludos

Gabriela
Tú te enamoraste de mi valentía, yo me enamoré de tu oscuridad; tú aprendiste a vencer tus miedos, yo aprendí a no perderme en tu abismo.

Hola.

Intento invocar una REST API desde Oracle, pero aun no lo logro :(

Intente con el ejemplo que dejaste, pero no se si hay alguna diferencia en cuanto al protocolo de seguridad de trasferencia usado, en mi caso HTTPS.

Soy completamente nueva en esto de oracle, agradezco cualquier ayuda :p