Underc0de - La Casa de los Informáticos

Foros Generales => Dudas y pedidos generales => Mensaje iniciado por: karurosu en Marzo 25, 2019, 07:18:54 PM

Título: [SOLUCIONADO] Petición a WebService desde Oracle
Publicado por: karurosu en Marzo 25, 2019, 07:18:54 PM
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!
Título: Re:Petición a WebService desde Oracle
Publicado por: karurosu en Marzo 25, 2019, 09:43:22 PM
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!
Título: Re:[SOLUCIONADO] Petición a WebService desde Oracle
Publicado por: Gabriela en Marzo 25, 2019, 10:38:30 PM

@karurosu (https://underc0de.org/foro/index.php?action=profile;u=1934)

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

Saludos

Gabriela
Título: Re:[SOLUCIONADO] Petición a WebService desde Oracle
Publicado por: DevGirl en Octubre 24, 2019, 12:26:40 AM
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