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!
@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
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