我有一个成功的 POST 请求,邮递员上传了一个调用这个 url 的文件:
当我尝试在 Oracle APEX 程序中应用它时:
l_resp := apex_web_service.make_rest_request(p_url => 'https://test.sharepoint.com/sites/BM/_api/web/GetFolderByServerRelativeurl("/sites/BM/BM_UPLOADS/")/Files/add(url="test_file.pdf",overwrite=true)';
p_file blob;', `
p_http_method => 'POST',
p_body_blob => p_file,
p_wallet_path =>
'file:/home/r_erp/wallet',
p_wallet_pwd => 'test@2022'
);
运行程序时出现错误:ORA-28759:打开文件失败
我说我做了 HTTPS 请求,这需要创建一个预言机钱包并在其中添加所需的证书。所以我按照这里的说明
但没有运气同样的错误:ORA-28759:打开文件失败
我不确定我是否将正确的 SharePoint 证书添加到 Oracle 钱包!当我访问我的 SharePoint 网站时,我拥有这 3 个证书:
我下载了叶子之一:*.sharepoint.com 并通过 orapki 实用程序将其添加到钱包中, 这个添加成功。
我下载了第二个:DigiCert Cloud Services CA-1 ,但是当我尝试添加这个时,我遇到了错误:无法读取证书。
我也运行此过程ACL授权:
begin
dbms_network_acl_admin.create_acl (
acl => 'utl_https.xml',
description => 'HTTP Access',
principal => 'BM',
is_grant => TRUE,
privilege => 'connect',
start_date => null,
end_date => null );
dbms_network_acl_admin.add_privilege (
acl => 'utl_https.xml',
principal => 'BD',
is_grant => TRUE,
privilege => 'resolve',
start_date => null,
end_date => null
);
dbms_network_acl_admin.assign_acl (
acl => 'utl_https.xml',
host => '*.sharepoint.com',
lower_port => 443,
upper_port => 443 ); commit; end;
我在 Linux OS 上的 Apache Web 应用程序托管云服务上使用 oracle APEX。我还为 oracle 钱包路径和其中的所有文件授予 777 权限。相同的错误:ORA-29273:HTTP 请求失败 ORA-28759:打开文件失败
我的问题:有什么遗漏我应该做的吗?如何将正确的 https 请求证书下载到 SharePoint 等平台?