首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Oracle错误ORA-29273: HTTP请求失败ORA-29259:调用UTL_HTTP.request时到达输入末尾

Oracle错误ORA-29273: HTTP请求失败ORA-29259:调用UTL_HTTP.request时到达输入末尾
EN

Stack Overflow用户
提问于 2019-05-30 05:12:00
回答 1查看 5.3K关注 0票数 0

我正在尝试使用Oracle UTL_HTTP.request API调用web服务。调用需要代理&wallet/证书。我相信我已经解决了证书问题,因为我不再收到ORA-29024: Certificate validation failure错误。现在我得到了ORA-29259: end-of-input reached错误。我正在使用DBMS版本12.1.0.2.0,并且应该使用TLS 1.2 (不确定如何验证这一点)。

下面的调用可以很好地工作并返回一个JSON负载:

代码语言:javascript
运行
复制
SELECT utl_http.request (
  'http://jsonplaceholder.typicode.com/todos/1',
  'proxy.myurl.com')
FROM dual;

响应:

代码语言:javascript
运行
复制
{
  "userId": 1,
  "id": 1,
  "title": "delectus aut autem",
  "completed": false
}

下面的调用抛出ORA-29259错误:

代码语言:javascript
运行
复制
SELECT utl_http.request (
  'https://service.baseurl.com/ping',
  'proxy.myurl.com',
  'file:/my/wallet/location',
  'mypassword'
 )
FROM DUAL;

运行时异常堆栈:

代码语言:javascript
运行
复制
ORA-29273: HTTP request failed
ORA-29259: end-of-input reached
ORA-06512: at "SYS.UTL_HTTP", line 1491
ORA-06512: at line 1

我还尝试使用匿名PL/SQL块调用UTL_HTTP.begin_request,但基本上得到了与上面相同的ORA-29259错误。

代码语言:javascript
运行
复制
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

有什么可能导致这个错误的想法吗?

EN

回答 1

Stack Overflow用户

发布于 2019-05-30 16:18:00

我想你的问题应该是12.1c中丢失的密码组。您必须对数据库应用安全补丁24666032,最低DBBP应为12.1.0.2.160719 (23054246)。

在此之后,数据库应该添加对密码的支持。

您可以在12c数据库中使用ORA-29259查看有关MOS:UTL_HTTP访问安全网站失败的信息(文档ID 2402276.1)

问候

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56368580

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档