oracle存储过程发送http请求的参数传递

上篇文章写道,在项目中采用触发器+存储过程实现了http接口的访问。本文补充一点儿参数传递的内容

链接:oracle触发器+存储过程发送http请求

1. 参数格式

当我们定义消息类型为 'application/x-www-form-urlencoded' 时,对应的参数结构为:key1=value1&key2=para2

--当我们定义消息类型为 'application/x-www-form-urlencoded' 时,对应的参数结构为:
-- key1=value1&key2=para2

UTL_HTTP.SET_HEADER (r      =>  req,name   =>  'Content-Type',  value  =>  'application/x-www-form-urlencoded');

2.中文内容处理

当数据内容只包含英文和数字时请求时正常的。当数据内容包含中文、空格及其他特殊字符时,请求将会失败。此时需要通过函数 utl_url.escape() 对数据内容进行转码。

由于我设计的接口的参数是一个 类型,因此我没有对整个 参数体进行 转码,而是仅对每个参数值进行转码。

para1 VARCHAR2(4000):=utl_url.escape('张三',true, 'UTF8');
para2 VARCHAR2(4000):=utl_url.escape('李四',true, 'UTF8');
--不要使用 utl_url.escape('张三');不设置编码格式的话可能会无法解码
v_param VARCHAR2(4000) :='key1='||para1 ||'&key2='||para2;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值