我正在创建一个 plsql 程序,该程序将从网页下载图像。如果我通过 TOAD 运行以下代码,我将获得 200(OK)的 HTTP 状态。问题是当将此代码作为存储过程运行时,它返回的 HTTP 状态为 403(禁止访问)。
DECLARE
req UTL_HTTP.REQ;
resp UTL_HTTP.RESP;
name VARCHAR2(256);
value VARCHAR2(1024);
BEGIN
UTL_HTTP.SET_PROXY('example');
req := UTL_HTTP.BEGIN_REQUEST('example');
UTL_HTTP.SET_HEADER(req, 'User-Agent', 'Mozilla/4.0');
resp := UTL_HTTP.GET_RESPONSE(req);
DBMS_OUTPUT.PUT_LINE('HTTP response status code: ' || resp.status_code);
DBMS_OUTPUT.PUT_LINE('HTTP response reason phrase: ' || resp.reason_phrase);
FOR i IN 1..UTL_HTTP.GET_HEADER_COUNT(resp) LOOP
UTL_HTTP.GET_HEADER(resp, i, name, value);
DBMS_OUTPUT.PUT_LINE(name || ': ' || value);
END LOOP;
UTL_HTTP.END_RESPONSE(resp);
END;
在 TOAD(应用程序登录)和存储过程(应用程序登录)中使用 UTL_HTTP 有什么区别?