我想调用 API,以便我可以将 SMS 网关集成到我的应用程序中,步骤将是
- 获取证书
- 创建钱包
- 将证书添加到钱包
- 创建 ACL。
证书已添加到钱包中。下面的命令正在验证保存的证书。
F:\cert>orapki wallet display -wallet F:/cert
Oracle PKI Tool : Version 12.1.0.2
Copyright (c) 2004, 2014, Oracle and/or its affiliates. All rights reserved.
Requested Certificates:
User Certificates:
Trusted Certificates:
Subject: CN=Let's Encrypt Authority X3,O=Let's Encrypt,C=US
Subject: CN=DST Root CA X3,O=Digital Signature Trust Co.
创建了 ACL。
BEGIN
DBMS_NETWORK_ACL_ADMIN.CREATE_ACL('www.xml', 'WWW ACL', 'SCOTT', TRUE, 'connect');
DBMS_NETWORK_ACL_ADMIN.ADD_PRIVILEGE('www.xml', 'SCOTT', TRUE, 'resolve');
-- All
DBMS_NETWORK_ACL_ADMIN.ASSIGN_ACL('www.xml', '*');
END;
commit;
我用于 HTTP 连接的过程以及钱包
CREATE OR REPLACE PROCEDURE GET_SESSION_ID (url VARCHAR2) AS
request UTL_HTTP.REQ;
response UTL_HTTP.RESP;
BEGIN
UTL_HTTP.set_wallet('file:F:/cert', 'mypassword');
DBMS_OUTPUT.PUT_LINE(url);
UTL_HTTP.SET_RESPONSE_ERROR_CHECK(FALSE);
request := UTL_HTTP.BEGIN_REQUEST(url, 'GET');
UTL_HTTP.SET_HEADER(request, 'User-Agent', 'Mozilla/4.0');
response := UTL_HTTP.GET_RESPONSE(request);
DBMS_OUTPUT.PUT_LINE('HTTP response status code: ' || response.status_code);
END GET_SESSION_ID;
但得到错误
错误报告 - ORA-29273:HTTP 请求失败 ORA-06512:在“SYS.UTL_HTTP”,第 1130 行 ORA-28857:未知 SSL 错误 ORA-06512:在“SCOTT.GET_SESSION_ID”,第 11 行 ORA-06512:在第 9 行29273. 00000 - “HTTP 请求失败” *原因:UTL_HTTP 包未能执行 HTTP 请求。*操作:使用 get_detailed_sqlerrm 检查详细的错误消息。修复错误并重试 HTTP 请求。
请帮忙!