我正在尝试从PL / Sql发出HTTP请求。我需要使用访问令牌进行身份验证,而不是用户名和密码。请提出用于传递访问令牌的标准API或代码。
代码:
DECLARE
obj json;
val_ json_value;
el_val BOOLEAN;
req utl_http.req;
res utl_http.resp;
url VARCHAR2(4000) := 'http://acdl-act-
dev.azurewebsites.net/apiconn/push';
name VARCHAR2(4000);
buffer CLOB;
l_chunk VARCHAR2(32000);
content CLOB := '{ "User_Name":"John","City":"Delhi", "Operation":"I"';
BEGIN
req := utl_http.begin_request( url, 'POST', ' HTTP/1.1');
utl_http.set_header( req, 'user-agent', 'mozilla/4.0');
utl_http.set_header( req,'content-type', 'application/x-www-form-urlencoded' );
utl_http.set_header( req,'Content-Length', length(content));
-- utl_http.set_authentication(r => req, username => p_user_name, password => p_pwd,scheme => 'Basic',for_proxy => false);
-- Need to use access token for authentication ex: 'adghjcjhdnmfbhjd367dsbasfkjhkdfsf38789734bcff'
utl_http.write_text(req, content);
res := utl_http.get_response(req);
-- process the response from the HTTPS call
BEGIN
LOOP
utl_http.read_line(res, buffer);
END LOOP;
utl_http.end_response(res);
EXCEPTION
WHEN utl_http.end_of_body THEN
utl_http.end_response(res);
END;
END ws_call_code;
/
答案 0 :(得分:0)
阅读Oracle文档” https://docs.oracle.com/database/121/ARPLS/u_http.htm#ARPLS71082
过程UTL_HTTP.SET_AUTHENTICATION具有以下用法说明 *
受支持的身份验证方案是HTTP基本和Amazon S3 身份验证。
*
答案 1 :(得分:0)
我知道这个年龄很大,但是如果有人正在寻找相同的信息。我只需要使用OAuth令牌访问REST Web服务,就需要使用令牌utl_http.set_header(l_http_request,'Authorization',l_token)设置标头。