I have this script to use UTL_HTTP.
DECLARE
req UTL_HTTP.REQ;
resp UTL_HTTP.RESP;
value VARCHAR2(1024);
BEGIN
req := UTL_HTTP.BEGIN_REQUEST('http://dba-oracle.com');
UTL_HTTP.SET_HEADER(req, 'User-Agent', 'Mozilla/4.0');
resp := UTL_HTTP.GET_RESPONSE(req);
LOOP
UTL_HTTP.READ_LINE(resp, value, TRUE);
dbms_output.put_line(value);
END LOOP;
UTL_HTTP.END_RESPONSE(resp);
EXCEPTION
WHEN UTL_HTTP.END_OF_BODY THEN
UTL_HTTP.END_RESPONSE(resp);
END;
/
I adjusted the script to use the Oracle Wallet using https with certificate:
declare
req utl_http.req;
resp utl_http.resp;
value varchar2(1024);
l_url varchar2(2000) := 'https://******.*****.nl:443';
l_data clob;
cursor c_data is
select clobdata
from post_file;
begin
open c_data;
fetch c_data into l_data;
close c_data;
utl_http.set_proxy('168.0.0.1:8080', '');
utl_http.set_wallet('file:C:\wallet', '*******');
req := utl_http.begin_request(l_url);
utl_http.set_header(req, 'User-Agent', 'Mozilla/4.0');
utl_http.set_header(req, 'content-length', length(l_data));
utl_http.write_text(req, l_data);
resp := utl_http.get_response(req);
loop
utl_http.read_line(resp, value, true);
dbms_output.put_line(value);
end loop;
utl_http.end_response(resp);
exception
when utl_http.end_of_body then
utl_http.end_response(resp);
end;
/
This works fine and I get a good response.
But when I put it in a procedure I get:
HTTP Error 403.7 - Forbidden: SSL client certificate is required.
Internet Information Services (IIS)
How is this possible and how can I solve this?
Message was edited by: J. André
I now created the procedure in the sys scheme and it works there. So the question is: what rights are missing for the user scheme, which makes it impossible to use the procedure, but possible doing it by script?