我很难从带有Bearer令牌的服务器发出GET请求。为了发出一个请求,我做了一个下面的函数,并且在与载体一致的地方出现错误Ora-06512。从邮递员发送请求不是问题,我可以重新接收json响应。但是,使用PLSQL我仍然无法做到这一点。
我的功能
FUNCTION get_response(ulr_path in varchar2)
RETURN clob
IS
z clob;
V_PARAM_NAMES apex_application_global.vc_arr2;
V_PARAM_VALUES apex_application_global.vc_arr2;
begin
apex_web_service.g_request_headers(1).name := 'Content-Type';
apex_web_service.g_request_headers(1).VALUE := 'application/json';
apex_web_service.g_request_headers(2).name := 'Authorization';
apex_web_service.g_request_headers(2).value := 'Bearer ' || TOKEN; --ORA 06512
--apex_web_service.g_request_headers(2).name := 'Accept';
--apex_web_service.g_request_headers(2).VALUE := '*/*';
V_PARAM_NAMES(1) := 'fist_param_name';
V_PARAM_VALUES(1) := 'first_param_value';
V_PARAM_NAMES(2) := 'second_param_name';
V_PARAM_VALUES(2) := 'second_param_value';
z := APEX_WEB_SERVICE.make_rest_request(p_url => ulr_path,
p_http_method => 'GET',
p_proxy_override => null,
p_transfer_timeout => 60,
--p_password => HUMO_TOKEN,--
--p_body => HUMO_TOKEN,
p_body_blob => null,
p_parm_name => V_PARAM_NAMES,
p_parm_value => V_PARAM_VALUES
);
RETURN z;
END;
邮递员卷曲(效果很好)看起来像这样
curl --location --request GET 'http://huamoapay.mur.ru/api/servicea' \
--header 'Authorization: Bearer really_long_string'
apex_web_service.g_request_headers.delete();
apex_web_service.g_request_headers(1).name := 'Content-Type';
apex_web_service.g_request_headers(1).value := 'application/json';
apex_web_service.g_request_headers(2).name := 'Authorization';
apex_web_service.g_request_headers(2).value := 'Bearer ' || v_json_keyvalue;
l_clob :=
apex_web_service.make_rest_request(p_url => ulr_path,
p_http_method => 'GET',
p_transfer_timeout => 180,
p_body => null);
v_json_obj := json_object_t.parse(l_clob);
z := v_json_obj.get_string('id');
return z;
使用此格式,然后尝试