Я хочу вызвать 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.
Пожалуйста, помогите!