ORACLE APEX 网络服务 p_body_blob
ORACLE APEX web service p_body_blob
我正在寻找将请求正文中的 json 文件传递给 apex_web_service.make_rest_request 的示例
有人可以给我举个例子吗?
谢谢,
路
我看到两种通过 apex_web_service.make_rest_request 发送文件的方法。在我的示例中,我使用了从 table SAMPLE_TABLE 列 BLOB_LOGO.[= 检索到的图像文件 blob 13=]
选项 1:
将查询中的文件 blob 类型直接缓存到 blob 对象中,并通过 p_body_blob 参数
发送
DECLARE
obj_sample SAMPLE_TABLE%ROWTYPE;
file_blob blob;
l_response clob;
BEGIN
-- query
select * INTO obj_sample
from SAMPLE_TABLE where ID = 123;
-- file as blob
file_blob := obj_sample.BLOB_LOGO;
l_response := apex_web_service.make_rest_request(
p_url => 'url/to/api/',
p_http_method => 'POST',
p_body_blob => file_blob,
p_proxy_override => 'url/to/proxy'
);
dbms_output.put_line(l_response);
END;
选项 2:
首先将文件 blob 数据类型转换为 base64 clob 对象,并通过 p_body 参数将其作为 json body (clob) 发送
DECLARE
obj_sample SAMPLE_TABLE%ROWTYPE;
json_sample clob;
file_clob clob;
l_response clob;
BEGIN
-- query
select * INTO obj_sample
from SAMPLE_TABLE where ID = 123;
-- file as clob
file_clob := apex_web_service.blob2clobbase64(obj_sample.BLOB_LOGO);
json_sample := json_object(
'SAMPLE_LOGO' value img_clob
);
apex_web_service.g_request_headers(1).name := 'Content-Type';
apex_web_service.g_request_headers(1).value := 'application/json';
l_response := apex_web_service.make_rest_request(
p_url => 'url/to/api/',
p_http_method => 'POST',
p_body => json_sample,
p_proxy_override => 'url/to/proxy'
);
dbms_output.put_line(l_response);
END;
我正在寻找将请求正文中的 json 文件传递给 apex_web_service.make_rest_request 的示例 有人可以给我举个例子吗?
谢谢, 路
我看到两种通过 apex_web_service.make_rest_request 发送文件的方法。在我的示例中,我使用了从 table SAMPLE_TABLE 列 BLOB_LOGO.[= 检索到的图像文件 blob 13=]
选项 1:
将查询中的文件 blob 类型直接缓存到 blob 对象中,并通过 p_body_blob 参数
发送DECLARE
obj_sample SAMPLE_TABLE%ROWTYPE;
file_blob blob;
l_response clob;
BEGIN
-- query
select * INTO obj_sample
from SAMPLE_TABLE where ID = 123;
-- file as blob
file_blob := obj_sample.BLOB_LOGO;
l_response := apex_web_service.make_rest_request(
p_url => 'url/to/api/',
p_http_method => 'POST',
p_body_blob => file_blob,
p_proxy_override => 'url/to/proxy'
);
dbms_output.put_line(l_response);
END;
选项 2:
首先将文件 blob 数据类型转换为 base64 clob 对象,并通过 p_body 参数将其作为 json body (clob) 发送
DECLARE
obj_sample SAMPLE_TABLE%ROWTYPE;
json_sample clob;
file_clob clob;
l_response clob;
BEGIN
-- query
select * INTO obj_sample
from SAMPLE_TABLE where ID = 123;
-- file as clob
file_clob := apex_web_service.blob2clobbase64(obj_sample.BLOB_LOGO);
json_sample := json_object(
'SAMPLE_LOGO' value img_clob
);
apex_web_service.g_request_headers(1).name := 'Content-Type';
apex_web_service.g_request_headers(1).value := 'application/json';
l_response := apex_web_service.make_rest_request(
p_url => 'url/to/api/',
p_http_method => 'POST',
p_body => json_sample,
p_proxy_override => 'url/to/proxy'
);
dbms_output.put_line(l_response);
END;