Ошибка Oracle ORA-29273: сбой HTTP-запроса ORA-29259: достигнут конец ввода при вызове UTL_HTTP.request - PullRequest
0 голосов
/ 30 мая 2019

Я пытаюсь вызвать веб-сервис, используя Oracle UTL_HTTP.request API. Для вызова требуется прокси и кошелек / сертификат. Я полагаю, что я устранил проблемы с сертификатом, поскольку я больше не получаю ошибку ORA-29024: Certificate validation failure. Теперь я получаю ORA-29259: end-of-input reached ошибку. Я использую СУБД версии 12.1.0.2.0 и должен использовать TLS 1.2 (не уверен, как это проверить).

Следующий вызов работает отлично и возвращает полезную нагрузку JSON:

SELECT utl_http.request (
  'http://jsonplaceholder.typicode.com/todos/1',
  'proxy.myurl.com')
FROM dual;

Ответ:

{
  "userId": 1,
  "id": 1,
  "title": "delectus aut autem",
  "completed": false
}

Следующий вызов выдает ошибку ORA-29259:

SELECT utl_http.request (
  'https://service.baseurl.com/ping',
  'proxy.myurl.com',
  'file:/my/wallet/location',
  'mypassword'
 )
FROM DUAL;

Стек исключений во время выполнения:

ORA-29273: HTTP request failed
ORA-29259: end-of-input reached
ORA-06512: at "SYS.UTL_HTTP", line 1491
ORA-06512: at line 1

Я также пытался вызвать UTL_HTTP.begin_request с помощью анонимного блока PL / SQL, но по сути получаю ту же ошибку ORA-29259, что и выше.

DECLARE
  l_http_request utl_http.req;
  l_http_response utl_http.resp;
  l_text VARCHAR2(32767);
BEGIN
  utl_http.set_proxy('proxy.myurl.com');
  utl_http.set_wallet('file:/my/wallet/location'
                      ,'mypassword');
  l_http_request := utl_http.begin_request('https://service.baseurl.com/ping' 
                                           ,'POST', 'HTTP/1.1');
  l_http_response := utl_http.get_response(l_http_request);
  BEGIN
    LOOP
      utl_http.read_text(l_http_response, l_text, 32766);
      dbms_output.put_line(l_text);
    END LOOP;
  EXCEPTION WHEN utl_http.end_of_body THEN
    utl_http.end_response(l_http_response);
  END;
END;

ORA-29273: HTTP request failed
ORA-29259: end-of-input reached
ORA-06512: at "SYS.UTL_HTTP", line 1258
ORA-06512: at line 10

Любые идеи о том, что может быть причиной этой ошибки?

1 Ответ

1 голос
/ 30 мая 2019

Я думаю, что вашей проблемой будут недостающие шифровальные костюмы в 12.1c.Вы должны применить к вашей базе данных, исправление безопасности 24666032 и минимальный DBBP должен быть 12.1.0.2.160719 (23054246).

После этого в базу данных должна быть добавлена ​​поддержка шифра.

Вы можете просмотреть эту информацию на MOS: UTL_HTTP доступ к защищенному веб-сайту завершается неудачно с ORA-29259 в базе данных 12c (ID документа 2402276.1)

С уважением

...