Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 и еще раз про utl_http и https...  [new]
fetisof
Member

Откуда:
Сообщений: 48
Oracle Database 12c Standard Edition Release 12.2.0.1.0 - 64bit Production 0
PL/SQL Release 12.2.0.1.0 - Production 0
CORE 12.2.0.1.0 Production 0
TNS for Linux: Version 12.2.0.1.0 - Production 0
NLSRTL Version 12.2.0.1.0 - Production 0

Доброго времени суток!

Имеем https-запрос:

https://api.tracker.k50.ru/v2/call/list/?apiKey=f66f1166-42a3-4eee-b5a5-5003681cd23c=31936075418[]=analyticsClientId[]=compositeSource[]=compositeSourceType[]=rDomain[]=utmMedium[]=utmCampaign[]=utmContent[]=utmTerm[]=compositeKeyword=startTime%3E2018-09-25+00%3A00%3A00;stopTime%3C2018-09-26+00%3A00%3A00;callerPhone==79020007227

Понятно что в браузере он открывается и выдает JSON.
Который бы хотелось получить и в БД...

Установили их сертификат по ссылке: https://api.tracker.k50.ru

Написали код:

CREATE OR REPLACE procedure GOOGLEANL.test_google is
l_url VARCHAR2(2000) := 'https://api.tracker.k50.ru/v2/call/list/?apiKey=f66f1166-42a3-4eee-b5a5-5003681cd23c=31936075418[]=analyticsClientId[]=compositeSource[]=compositeSourceType[]=rDomain[]=utmMedium[]=utmCampaign[]=utmContent[]=utmTerm[]=compositeKeyword=startTime%3E2018-09-25+00%3A00%3A00;stopTime%3C2018-09-26+00%3A00%3A00;callerPhone==79020007227';

l_charset varchar2(100) := 'UTF8';
l_http_request UTL_HTTP.req;
l_http_response UTL_HTTP.resp;
l_val varchar2(32547);
l_http_req utl_http.req;
l_http_resp utl_http.resp;

begin
BEGIN

utl_http.set_wallet('file:/u01/app/oracle/walgoogle', 'Gq56743fq');

l_http_request := utl_http.begin_request(url => l_url, method => 'GET');

l_http_response := utl_http.get_response(l_http_request);

EXCEPTION
WHEN utl_http.too_many_requests THEN
utl_http.end_request(l_http_request);
END;

utl_http.read_text(l_http_response, l_val, 5000);

dbms_output.put_line (substr(l_val, 1, 256));

utl_http.end_response(l_http_response);

exception
when others then
dbms_output.put_line (sqlerrm);
raise;
end;
/

При выполнении процы получаем ошибку:

ORA-29273: сбой запроса HTTP
ORA-06512: на "GOOGLEANL.TEST_GOOGLE", line 36
ORA-24263: Сертификат на удаленном сервере не совпадает с адресом назначения.
ORA-06512: на "SYS.UTL_HTTP", line 380
ORA-06512: на "SYS.UTL_HTTP", line 1127
ORA-06512: на "GOOGLEANL.TEST_GOOGLE", line 16
ORA-06512: на line 2

Гугль по ней находит это:

https://support.oracle.com/knowledge/Oracle Database Products/2275666_1.html

Там пишут: до Upgrade to 12cR2, а у нас уже 12с2 (см.выше).

Что делать, никто не представляет.
Админ БД склоняет разрабов к реализации решения через жабу.
Подскажите, это единственное решение или все-таки можно что-то допилить чтобы это работало на PL/SQL?

Спасибо.
3 окт 18, 17:34    [21694386]     Ответить | Цитировать Сообщить модератору
 Re: и еще раз про utl_http и https...  [new]
Elic
Member

Откуда: 1984. Выбраковка финно-угром продолжается. КЯЗ
Сообщений: 28476
fetisof
или все-таки можно что-то допилить чтобы это работало на PL/SQL?
TLS termination proxy
3 окт 18, 17:45    [21694396]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить