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

如何使用apex_web_service.make_rest_request传递JSON请求体?

问题解答

1. 能否使用apex_web_service.make_rest_request传递JSON请求体?

完全可以。apex_web_service.make_rest_request支持通过p_body参数传递JSON格式的请求体,同时需要指定对应的p_content_type为'application/json',并匹配正确的HTTP方法(如POST、PUT)。

示例代码:

DECLARE
    l_response CLOB;
    l_json_body CLOB := '{"key1": "value1", "key2": 123}';
BEGIN
    l_response := apex_web_service.make_rest_request(
        p_url         => 'https://your-api-endpoint.com',
        p_http_method => 'POST',
        p_body        => l_json_body,
        p_content_type => 'application/json'
    );
    -- 处理响应
    DBMS_OUTPUT.PUT_LINE(l_response);
END;
/

2. 解决PLS-00201: identifier 'UTL_HTTP' must be declared错误

你遇到的权限问题,本质是apex_web_service内部依赖UTL_HTTP,但当前用户没有直接访问UTL_HTTP的权限。可行的解决方式如下:

  • 在APEX应用上下文内调用:如果代码是在APEX应用的页面处理、进程、触发器或PL/SQL动态内容中执行,APEX的运行时用户(通常是APEX_PUBLIC_USER或应用解析用户)已拥有调用UTL_HTTP的权限,你的代码会继承该权限,不会触发此错误。
  • 请求管理员授予APEX_WEB_SERVICE执行权限:若必须在APEX之外调用该包,需管理员执行以下授权语句(因你非管理员,此条仅作参考):
GRANT EXECUTE ON APEX_WEB_SERVICE TO your_user;

注:即使授予APEX_WEB_SERVICE执行权限,部分环境仍可能需要管理员配置网络访问控制(如UTL_HTTP.set_wallet或访问控制列表),但核心的UTL_HTTP权限问题会通过授权间接解决。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 10:15:39