You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Oracle中如何在日志中打印UTL_HTTP请求的HTTP头信息

解决UTL_HTTP请求头无法打印的问题

l_http_request是UTL_HTTP.REQ类型的对象,不能直接通过字符串拼接输出。要打印已配置的请求头,需要用UTL_HTTP提供的API遍历,或者启用调试日志,具体方法如下:

方法一:遍历请求头字段

通过UTL_HTTP.GET_HEADER_COUNT获取头的总数,再循环调用UTL_HTTP.GET_HEADER逐个取出头的名称和值:

DECLARE
    l_http_request UTL_HTTP.REQ;
    soap_action VARCHAR2(200) := 'http://example.com/soap/action';
    request_clob CLOB := '<soapenv:Envelope>...</soapenv:Envelope>';
    l_header_count PLS_INTEGER;
    l_header_name VARCHAR2(256);
    l_header_value VARCHAR2(1024);
BEGIN
    -- 初始化请求
    l_http_request := UTL_HTTP.BEGIN_REQUEST('http://example.com/service');
    
    -- 设置请求头
    UTL_HTTP.set_header(l_http_request, 'Content-Type', 'text/xml;charset=UTF-8');
    IF soap_action IS NOT NULL THEN
        UTL_HTTP.set_header(l_http_request, 'SOAPAction', soap_action);
    END IF;
    UTL_HTTP.set_header(l_http_request, 'Content-Length', LENGTH(request_clob));
    -- 设置Basic认证和Keep-Alive
    UTL_HTTP.set_authentication(l_http_request, 'username', 'password');
    UTL_HTTP.set_header(l_http_request, 'Connection', 'keep-alive');
    
    -- 遍历打印所有请求头
    l_header_count := UTL_HTTP.GET_HEADER_COUNT(l_http_request);
    DBMS_OUTPUT.PUT_LINE('=== 已配置的请求头 ===');
    FOR i IN 1..l_header_count LOOP
        UTL_HTTP.GET_HEADER(l_http_request, i, l_header_name, l_header_value);
        DBMS_OUTPUT.PUT_LINE(l_header_name || ': ' || l_header_value);
    END LOOP;
    
    UTL_HTTP.END_REQUEST(l_http_request);
EXCEPTION
    WHEN OTHERS THEN
        IF UTL_HTTP.IS_OPEN(l_http_request) THEN
            UTL_HTTP.END_REQUEST(l_http_request);
        END IF;
        RAISE;
END;
/

方法二:启用UTL_HTTP调试日志

如果需要查看完整的请求细节(包括请求行、头、请求体),可以开启调试模式,将日志输出到DBMS_OUTPUT:

-- 开启调试输出,级别4表示打印所有请求响应细节
UTL_HTTP.SET_DEBUG_LEVEL(4);
UTL_HTTP.SET_DEBUG_OUTPUT(UTL_HTTP.DBMS_OUTPUT);

-- 后续执行请求初始化、设置头、发送请求的代码,调试信息会自动输出

注意事项

  • 执行用户需要有UTL_HTTP的EXECUTE权限;如果使用文件输出调试日志,还需要UTL_FILE相关权限。
  • 调试模式会打印敏感信息(如Basic认证的密码),生产环境使用后务必关闭。

内容的提问来源于stack exchange,提问作者chiranth

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 07:35:26