plsql调用webservice(https协议基于soap数据协议)

本文章使用plsql的utl_http包调用webservice接口。本人入门级水平 写的不好 勿喷。

调用 https接口 首先需设置oracle wallet钱包, 首先需要把网站证书添加到wallet钱包。

1.下载网站证书(具体如何下载请百度)

2.创建wallet

    (1)创建钱包位置文件夹

    $ mkdir -p /u01/app/oracle/admin/DB11G/wallet

    (2)创建钱包

    $ orapki wallet create -wallet /u01/app/oracle/admin/DB11G/wallet -pwd WalletPasswd123 -auto_login
   (3)钱包创建成功后则添加信任证书到钱包
 
  
$ orapki wallet add -wallet /u01/app/oracle/admin/DB11G/wallet -trusted_cert -cert "/host/BaltimoreCyberTrustRoot.crt" -pwd WalletPasswd123
   
3.钱包创建好 信任证书添加成功后则开始写代码

plsql调用webservice(https协议基于soap数据协议)_第1张图片

plsql调用webservice(https协议基于soap数据协议)_第2张图片


plsql调用webservice(https协议基于soap数据协议)_第3张图片


4.对过程进行调用

  (2)在调用之前需进行钱包设置

  utl_http.set_wallet('钱包位置','钱包密码');

 (3)ACL权限列表设置

        创建网络权限列表 

CREATE USER test1 IDENTIFIED BY test1;
GRANT CONNECT TO test1;

CREATE USER test2 IDENTIFIED BY test2;
GRANT CONNECT TO test2;

BEGIN
  DBMS_NETWORK_ACL_ADMIN.create_acl (
    acl          => 'test_acl_file.xml', 
    description  => 'A test of the ACL functionality',
    principal    => 'TEST1',
    is_grant     => TRUE, 
    privilege    => 'connect',
    start_date   => SYSTIMESTAMP,
    end_date     => NULL);

  COMMIT;
END;

        分配网络

BEGIN
  DBMS_NETWORK_ACL_ADMIN.add_privilege ( 
    acl         => 'test_acl_file.xml', 
    principal   => 'TEST2',
    is_grant    => FALSE, 
    privilege   => 'connect', 
    position    => NULL, 
    start_date  => NULL,
    end_date    => NULL);

  COMMIT;
END;
/

最后调用过程



如有不对的地方请见谅!!!!!!!!!


参考地址:https://oracle-base.com/articles/misc/utl_http-and-ssl

        https://oracle-base.com/articles/11g/fine-grained-access-to-network-services-11gr1

你可能感兴趣的:(oracle)