oracle 受保护的RESTful Web服务

mo49yndu  于 2023-11-17  发布在  Oracle
关注(0)|答案(1)|浏览(133)

我使用oracle apex环境创建了几个Rest Web服务,需要从不同的数据库模式调用它。
(For例如,我有两个schema的abc和xyz。它们都有自己的apex环境。API是在abc的apex环境上创建的。我需要在xyz schema下使用plsql调用它。)
现在,当它不受保护时,我可以成功地调用API并发送/接收数据。
但是一旦我在上面应用特权,我得到下面的错误:x1c 0d1x
如果我使用Postman,我可以生成令牌,如下面的屏幕截图所示:

这个活动对我来说是新的。所以,我想我在调用这个API时做错了什么或者错过了一些需要添加的东西。
下面是我的代码示例:

apex_web_service.oauth_authenticate(
        p_token_url     => l_request_url || '/oauth/token',
        p_client_id     => l_client_id,
        p_client_secret => l_client_secret);

     begin
         apex_web_service.oauth_set_token(
             p_token =>  apex_web_service.oauth_get_last_token
         );
     end;

    l_request_headers_tab (1).name := 'Authorization';
    l_request_headers_tab (1).VALUE := 'Bearer ' || apex_web_service.oauth_get_last_token;

    l_request_headers_tab (2).name := 'Content-TYPE';
    l_request_headers_tab (2).VALUE := 'application/json';

    <calling apex_web_service.make_rest_request>

字符串
虽然我检查了apex_web_service.oauth_get_last_token也返回令牌。所以不知道为什么我仍然得到401错误。
请帮我解决这个问题。
谢谢你,

juzqafwq

juzqafwq1#

看起来,apex_web_service.oauth_set_token正在重置令牌。因此headers_tab没有收到令牌。虽然我真的认为这是为了将令牌设置为API。
删除下面的部分后,它的工作!

begin
    apex_web_service.oauth_set_token(
        p_token =>  apex_web_service.oauth_get_last_token
    );
end;

字符串
将不胜感激,如果有任何深入的解释。

相关问题