CREATE OR REPLACE PACKAGE BODY xml_http AS PROCEDURE xmlDocForResponse(response VARCHAR2, content_type VARCHAR2, xmldoc OUT xmldom.DOMDocument) IS BEGIN IF response IS NOT NULL THEN IF content_type LIKE 'text/xml%' OR content_type LIKE 'application/xml%' THEN xmldoc := xml.parse(response); END IF; END IF; END; PROCEDURE post(doc VARCHAR2, url VARCHAR2, resp OUT xmldom.DOMDocument, proxyServer VARCHAR2 := NULL, proxyPort NUMBER := 80) IS response VARCHAR2(32767); content_type VARCHAR2(400); BEGIN http.post(doc,'text/xml', url,response,content_type,proxyServer,proxyPort); xmlDocForResponse(response,content_type,resp); END; PROCEDURE post(doc xmldom.DOMDocument, url VARCHAR2, resp OUT xmldom.DOMDocument, proxyServer VARCHAR2 := NULL, proxyPort NUMBER := 80) IS response VARCHAR2(32767); content_type VARCHAR2(400); BEGIN http.post(xpath.extract(doc),'text/xml', url,response,content_type,proxyServer,proxyPort); xmlDocForResponse(response,content_type,resp); END; PROCEDURE get(url VARCHAR2, resp OUT xmldom.DOMDocument, proxyServer VARCHAR2 := NULL, proxyPort NUMBER := 80) IS response VARCHAR2(32767); content_type VARCHAR2(400); BEGIN http.get(url,response,content_type,proxyServer,proxyPort); xmlDocForResponse(response,content_type,resp); END; END; |