oracle-apex - 从 Oracle APEX 调用 Mailgun Rest API
问题描述
我使用 Oracle Apex 19,需要创建一个使用 Mailgun REST API 发送邮件的程序。
如果我在控制台上编写下一个 curl 代码,它可以正常工作:
curl --location --request POST 'https://api.mailgun.net/v3/example.com.ar/messages' \
--header 'Authorization: Basic <<my-secrect-api-code>>' \
--form 'from=postmaster@example.com.ar' \
--form 'to=test@gmail.com' \
--form 'subject=Test' \
--form 'template=mytemplatename'
在邮递员中也可以正常工作:
我怎么说,我需要将此代码翻译成 APEX PL/SQL,我试过了
declare
-- Local variables here
i integer;
l_resp clob;
g_url varchar2(300) := 'https://api.mailgun.net/v3/example.com.ar/messages';
begin
-- Test statements here
apex_web_service.g_request_headers(1).name := 'Authorization';
apex_web_service.g_request_headers(1).Value := 'Basic my-secret-code';
l_resp := apex_web_service.make_rest_request(p_url => g_url,
p_http_method => 'POST',
p_parm_name => apex_util.string_to_table('from:to:subject:template',':'),
p_parm_value => apex_util.string_to_table('postmaster@example.com.ar:test@gmail.com:helo:mytemplate',':'),
p_wallet_path =>'file:/backup/wallet',
p_wallet_pwd => null);
dbms_output.put_line(L_resp);
end;
当调用 pl/sql 过程时,我总是得到错误:
{
"message": "'from' parameter is missing"
}
听起来好像没有发送 FORM 参数,但我不知道如何使用 APEX_WEB_SERVICE 发出此请求。
你能帮助我吗?
解决方案
添加参数“Content-Type”我已经解决了这个问题:
apex_web_service.g_request_headers(2).name := 'Content-Type';
apex_web_service.g_request_headers(2).value := 'application/x-www-form-urlencoded';
推荐阅读
- angularjs - 跨域本地存储库在通过 IIS 部署时停止工作
- sharepoint-2013 - 有没有办法根据链接字段在共享点列表中设置字段,但使用来自另一个列表的值,类似于 JOIN 甚至是 vlookup?
- r - 升级到 RStudio 1.2 后 RMarkdown 出现针织错误
- swift - 3D 对象的重复图案(栅栏)
- r - k原型的实现
- excel - 复制并粘贴到不同的工作表和列
- c# - 为什么 ToList 可以修改原始值而不重新分配给自己?
- python - 发送自动邮件
- node.js - NodeJs & Mongodb:无法更新(补丁)。返回成功但不改变任何东西
- javascript - 使用 Openlayers 和 JQuery 使用复选框停用脚本