我在Oracle云计算实例上构建了一个Flask Python REST应用程序。REST调用在我的客户端上运行得很好。(我添加了0.0.0.0/0的入口规则(。
我的计划是让Comupute实例只能从我的ATP数据库访问,并从PL/SQL调用REST服务。当我尝试调用Web服务时,我会收到以下错误:
DECLARE
l_clob CLOB;
BEGIN
l_clob := apex_web_service.make_rest_request(
p_url => 'https://130.zz.yy.xx:5000/test',
--p_url=> 'https://httpbin.org/get',
p_http_method => 'GET'
);
END;
Error report -
ORA-29273: HTTP request failed
ORA-06512: at "APEX_220100.WWV_FLOW_WEB_SERVICES", line 1182
ORA-06512: at "APEX_220100.WWV_FLOW_WEB_SERVICES", line 782
ORA-01031: insufficient privileges
ORA-06512: at "SYS.UTL_HTTP", line 380
ORA-06512: at "SYS.UTL_HTTP", line 1209
ORA-06512: at "APEX_220100.WWV_FLOW_WEB_SERVICES", line 756
ORA-06512: at "APEX_220100.WWV_FLOW_WEB_SERVICES", line 1023
ORA-06512: at "APEX_220100.WWV_FLOW_WEB_SERVICES", line 1371
ORA-06512: at "APEX_220100.WWV_FLOW_WEBSERVICES_API", line 568
ORA-06512: at line 5
29273. 00000 - "HTTP request failed"
*Cause: The UTL_HTTP package failed to execute the HTTP request.
*Action: Use get_detailed_sqlerrm to check the detailed error message.
Fix the error and retry the HTTP request.
正常的REST调用工作正常。可能是什么问题?
- ATP由于某些网络设置而无法访问计算实例
- ATP对SSL设置或其他一些讨厌的HTTPS内容不满意
在自治数据库上从APEX调用RESTAPI的限制如下:https://docs.oracle.com/en/cloud/paas/atp-cloud/atpgs/autonomous-apex-web-services.html
所以。。。
- 必须是公共端点,SSL证书必须由公共CA提供
- 对于HTTPS,只允许使用默认端口(443(;其他端口会引发您看到的错误消息
- ADB不支持在APEX中配置代理服务器;然后你也获得";权限不足";错误