create or replace procedure p_sendsms(p_comCode in varchar2,
p_businessType in varchar2,
p_phoneNo in varchar2,
p_content in varchar2,
p_spNumber in varchar2,
p_operatorCode in varchar2,
p_mtSubID in varchar2,
err_code out integer,
ora_code out integer) is
s_request varchar2(4000); --请求报文
s_respond varchar2(4000); --响应报文
http_req utl_http.req; --请求包头
http_resp utl_http.resp; --响应包头
s_sysdate varchar2(30); --发送时间
BEGIN
--取当前时间+1分钟
select to_char(sysdate, 'YYYY-MM-DD')||' '||to_char(sysdate + 1 / 1440, 'hh24:mi:ss')
INTO s_sysdate
FROM DUAL;
--s_sysdate :=replace(s_sysdate,' ',' ');
---初始化REQUEST ]
http_req := utl_http.begin_request('http://10.10.134.171:7001/smserver/submitMessage?phoneNo=' ||
p_phoneNo || '&content=' || p_content ||
'&comCode=' || p_comCode ||
'&businessType=' || p_businessType ||
'&spNumber=' || p_spNumber ||
'&operatorCode=' || p_operatorCode ||
'&mtSubID=' || p_mtSubID ||
'&sendtime=' || s_sysdate,
'POST',
utl_http.HTTP_VERSION_1_1 /* 'HTTP/1.1'*/);
-- utl_http.set_body_charset('UTF-8');--设置包体编码集
utl_http.set_header(http_req, 'Accept: */*');
utl_http.set_header(http_req,
'Content-Type',
'application/x-www-form-urlencoded;charset=utf-8');
utl_http.set_header(http_req,
'User-Agent',
'Nimo Software HTTP Retriever 1.0');
utl_http.set_header(http_req, 'Content-Length', length(s_request));
utl_http.set_header(http_req, 'Cache-Control', 'no-cache');
--utl_http.write_text(http_req, s_request);--如果有包体可以写入
http_resp := utl_http.get_response(http_req); --提交请求
if http_resp.status_code = utl_http.HTTP_OK then
--成功才读取响应消息
utl_http.read_text(http_resp, s_respond);
utl_http.end_response(http_resp); --结束请求
s_respond := substr(s_respond, 1, 4000); ---long 转成 varchar2
dbms_output.put_line(s_respond); --打印响应消息
dbms_output.put_line(http_resp.reason_phrase); --打印响应消息
else
err_code := http_resp.status_code;
ora_code := sqlcode;
dbms_output.put_line(http_resp.reason_phrase); --打印响应消息
end if;
exception
WHEN OTHERS THEN
ora_code := sqlcode;
END;