我使用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错误。
请帮我解决这个问题。
谢谢你,
1条答案
按热度按时间juzqafwq1#
看起来,
apex_web_service.oauth_set_token
正在重置令牌。因此headers_tab
没有收到令牌。虽然我真的认为这是为了将令牌设置为API。删除下面的部分后,它的工作!
字符串
将不胜感激,如果有任何深入的解释。