适用于一些封闭系统无法触发HTTP请求进行扩展。
使用“utl_http.request()”进行HTTP请求。
select utl_http.request('http://xxx') from dual
如出现“网络访问被访问控制列表(ACL)拒绝”错误信息,原因是首次使用webservice的时候没有创建acl访问控制权限。
SELECT acl,
principal,
privilege,
is_grant,
start_date,
end_date
FROM dba_network_acl_privileges;
使用语句查询当前授权的ACL信息。
如果存在授权信息可直接往里面添加。(acl参数直接使用表中字段内容)
BEGIN
dbms_network_acl_admin.add_privilege(acl => 'NETWORK_ACL_4700D2108291557EE05387E5E50A8899',
principal => 'CPCBASE',--当前登录账户
is_grant => TRUE,
privilege => 'connect');
COMMIT;
END;
如当前不存在ACL授权信息可直接创建
BEGIN
dbms_network_acl_admin.create_acl(acl => 'xxx',
description => 'xxx',
principal => 'CPCBASE', -- 赋予权限给哪个用户
is_grant => TRUE, -- true表示授予权限 false表示取消权限
privilege => 'connect');
dbms_network_acl_admin.add_privilege(acl => 'xxx',
principal => 'CPCBASE',
is_grant => TRUE,
privilege => 'connect');
dbms_network_acl_admin.assign_acl(acl => 'xxx', host => '*');
COMMIT;
END;