@ORACLE通过utl_http传送加密数据实现第三方接口
ORACLE通过utl_http传送加密数据实现第三方接口
最近这个项目已经到了收尾阶段,再不总结就要忘记。抓紧时间出成品:
项目是一个三方接口,说到接口就离不开数据的收集、数据传送两个方面。
数据收集,有关客户机密这个先放一边暂且不讨论。
数据传送方面涉及两个方面,也是今天总结中的主体-HTTP请求、数据加密
这次的项目是把加密的各种数据转换函数溜了一遍,在各平台寻找资料时也碰到一些奇怪的现象:
公开代码没有交待测试环境–》这就导致有读者看到代码后无法实现代码的重写。
有些公开代码还算完整,有些就只是一些只言片语,看了真是一头雾水。
这就要各位读者朋友养成一双火眼金睛,能分辨出那些是可利用的,那些是不可利用的。
其中,也把自己踩过的坑记录下来,避免下次再踩进去。
另一个就是HTTP请求,它的整个流程如下:
1.建立连接:向服务器发送请求之前需要建立连接,通过DNS服务器创建套接字、建立连接、收发数据等操作查询ip地址,再建立socket连接。
2.发送请求:连接成功后,向Web服务器发送http消息格式的请求,包括get、post等命令。
3.响应、应答:web服务器收到请求后,从它的文档空间中搜索子目录index的文件index.html,并把其传送给web服务器,再将具体信息传递回浏览器。—第三方接收,响应并回复的一个过程。
4.关闭连接:Web浏览器与Web服务器断开,以保证其他Web浏览器能与Web服务器建立连接。
PROCEDURE RECEIVE_HTTP(p_addr_type in varchar2,p_json in varchar2, p_org_no in number, p_so_pos_no in varchar2, p_so_no in varchar2, p_job_start_pk_no in number, p_serial_no in number)
IS
PRAGMA autonomous_transaction;
REQ UTL_HTTP.REQ;
RESP UTL_HTTP.RESP;
VALUE VARCHAR2(32000);
v_url varchar2(2014);
v_tok