Oracle 通过UTL_HTTP 发送http请求并处理发送内容中包含空格和特殊字符的问题
来源:互联网 发布:pmp含金量 知乎 编辑:程序博客网 时间:2024/05/22 12:20
Oracle中可以通过UTL_HTTP发送http请求,例子如下:
CREATE OR REPLACE PROCEDURE test(v_userid in varchar2,v_content in varchar2 ) IS req UTL_HTTP.REQ; resp UTL_HTTP.RESP; v_message varchar2(10000); xmlstr varchar2(30000);begin begin req := UTL_HTTP.BEGIN_REQUEST('http://ip:port/weixin?userid='||v_userid||'&'||'content='||v_content); utl_http.set_header(req, 'Content-Type', 'text/html; charset=utf-8'); utl_http.write_text(req,xmlstr); --通过body发送消息 xmlstr:=v_content; utl_http.set_header(req, 'Content-Length',lengthb(xmlstr)); utl_http.write_text(req,xmlstr); resp := UTL_HTTP.GET_RESPONSE(req); LOOP UTL_HTTP.read_line(resp,v_message, TRUE); dbms_output.put_line(v_message); END LOOP; utl_http.end_request(req); utl_http.end_response(resp); EXCEPTION WHEN utl_http.end_of_body THEN utl_http.end_response(resp); WHEN OTHERS THEN utl_http.end_response(resp); utl_http.end_request(req); end;END test;
调用的时候,如果v_content中包含空格或者其他特殊字符的时候请求就会失败,要想解决这个问题的话,就需要对内容进行编码,我们可以通过url encode来对相应的内容编码,web应用接收到相应的数据做相应的解码即可,修改后的代码如下:
CREATE OR REPLACE PROCEDURE test(v_userid in varchar2,v_content in varchar2 ) IS req UTL_HTTP.REQ; resp UTL_HTTP.RESP; v_message varchar2(10000); xmlstr varchar2(30000);begin begin req := UTL_HTTP.BEGIN_REQUEST('http://ip:port/weixin?userid='||v_userid||'&'||'content='||utl_url.escape(v_content,true,'UTF8')); utl_http.set_header(req, 'Content-Type', 'text/html; charset=utf-8'); utl_http.write_text(req,xmlstr); --通过body发送消息 xmlstr:=utl_url.escape(v_content,true,'UTF8'); utl_http.set_header(req, 'Content-Length',lengthb(xmlstr)); utl_http.write_text(req,xmlstr); resp := UTL_HTTP.GET_RESPONSE(req); LOOP UTL_HTTP.read_line(resp,v_message, TRUE); dbms_output.put_line(v_message); END LOOP; utl_http.end_request(req); utl_http.end_response(resp); EXCEPTION WHEN utl_http.end_of_body THEN utl_http.end_response(resp); WHEN OTHERS THEN utl_http.end_response(resp); utl_http.end_request(req); end;END test;
阅读全文
0 0
- Oracle 通过UTL_HTTP 发送http请求并处理发送内容中包含空格和特殊字符的问题
- Oracle 通过UTL_HTTP 发送http请求并处理发送内容中包含空格和特殊字符的问题
- 关于Android HTTP请求URI中包含特殊字符,例如中文,空格等,请求400
- HTTP 发送特殊字符 &
- HTTP 发送特殊字符 &
- 【Oracle】UTL_HTTP 发送http请求,定时任务job+存储过程PROCEDURE
- HTTP的通信的发送请求,接受请求响应包含哪些内容?OC中是怎样实现的?
- HTTP的通信的 发送请求、接收响应 包含哪些内容?OC中是怎样实现的?
- 通过http/https的POST方式,发送、处理和接收XML文件内容
- http请求中对特殊字符的处理,以及xml中对特殊字符的处理
- oracle发送http请求。
- http请求数据包含特殊字符处理(java)
- http请求数据包含特殊字符处理(java)
- perl的expect发送特殊字符问题
- 发送HTTP和HTTPS(单向验证)请求(包含POST请求)
- 在oracle中通过utl_http获得指定网页内容
- 发送http的post请求并通过request接收post请求体
- JAVA发送HTTP请求,并接受返回内容
- JTA 深度历险
- Spark算子分类及功能描述
- CSS:模型
- 减小unity iOS版包大小方法
- Android对Window对象的管理机制分析
- Oracle 通过UTL_HTTP 发送http请求并处理发送内容中包含空格和特殊字符的问题
- phpcms v9 下拉菜单 二级 三级子栏目调用方法
- 走向三年Java
- pytube——下载YouTube视频的python库
- tensorflow实现对tensor中各个元素求逻辑‘与’
- ajax详解
- java rmi connection refused
- D3.js:坐标轴
- java后端书架