29.06.2017 11:48
OlegON
 
Потребовалось запросить по HTTPS страницу.
Код:
select utl_http.request ('https://olegon.ru/') from dual;

ORA-29273: сбой запроса HTTP
ORA-06512: на  "SYS.UTL_HTTP", line 1720
ORA-29024: Сбой при проверке корректности сертификата
ORA-06512: на  line 1
мде... экспортнул через FF свой сертификат, создал Wallet, подгрузил сертификат... Обращаю внимание, что надо экспортировать цепочку сертификатов...
Код:
orapki wallet create -wallet ./wallet -auto_login
orapki wallet add -wallet ./wallet -trusted_cert -cert olegonru.crt
orapki wallet display -wallet ./wallet
Код:
exec utl_http.set_wallet('file:/u/app/wallet','q1w2e3R$');
select utl_http.request ('https://olegon.ru/') from dual;

ORA-29273: сбой запроса HTTP
ORA-06512: на  "SYS.UTL_HTTP", line 1720
ORA-29024: Сбой при проверке корректности сертификата
ORA-06512: на  line 1
никто на такие грабли не наступал?
29.06.2017 12:07
OlegON
 
попробовал другой вариант, с таким же результатом
SQL код:
SET SERVEROUTPUT ON SIZE 40000
 
CREATE 
OR REPLACE PROCEDURE DISPLAY_PAGE(url IN VARCHAR2) AS
  
request_context UTL_HTTP.REQUEST_CONTEXT_KEY;
  
req             UTL_HTTP.REQ;
  
resp            UTL_HTTP.RESP;
  
data            VARCHAR2(1024);
BEGIN
  
-- Create a request context with its wallet and cookie table
  request_context 
:= UTL_HTTP.CREATE_REQUEST_CONTEXT(
                       
wallet_path          => 'file:/u/app/wallet',
                       
wallet_password      => 'q1w2e3R$',
                       
enable_cookies       => TRUE,
                       
max_cookies          => 300,
                       
max_cookies_per_site => 20);
  -- 
Make a HTTP request using the private wallet and cookie
  
-- table in the request context
  req 
:= UTL_HTTP.BEGIN_REQUEST(
           
url             => url,
           
request_context => request_context);
  
resp := UTL_HTTP.GET_RESPONSE(req);

  
BEGIN
    LOOP
       UTL_HTTP
.READ_TEXT(respdata);
       
DBMS_OUTPUT.PUT(data);
    
END LOOP;
  
EXCEPTION
      WHEN UTL_HTTP
.END_OF_BODY THEN
         UTL_HTTP
.END_RESPONSE(resp); 
  
END;

  -- 
Destroy the request context
  UTL_HTTP
.DESTROY_REQUEST_CONTEXT(request_context);
END;
 
BEGIN
  DISPLAY_PAGE
('https://olegon.ru');
END;

Часовой пояс GMT +3, время: 03:10.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.