--這個是測驗的代碼
--但是如果這個介面是需要賬戶密碼的,我該怎么將賬戶密碼作為引數傳遞進去呢?
我試過在url后面直接拼接賬戶和密碼,但是并沒有用
utl_http 里面有個 UTL_HTTP.SET_AUTHENTICATION(req, '賬號', '密碼');我試了這個方法也沒有用,不管賬號密碼是否正確,resp的回應狀態都是200,
跪求各位大神賜教了
procedure test(x varchar2) is
req utl_http.req;
resp utl_http.resp;
v_msg VARCHAR2(80);
v_url VARCHAR2(32767) := 'http://oracle-base.com/webservices/server.php?wsdl';
v_name VARCHAR2(32767);
v_value VARCHAR2(32767);
v_GP varchar2(20) := '1';
p_counts varchar2(20);
v_clob_content CLOB;
--這里是請求的內容
v_content VARCHAR2(32767) := '<soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:web="http://oracle-base.com/webservices/">
<soapenv:Header/>
<soapenv:Body>
<web:ws_add soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<int1 xsi:type="xsd:string">' || 1 ||
'</int1>
<int2 xsi:type="xsd:string">' || 2 ||
'</int2>
</web:ws_add>
</soapenv:Body>
</soapenv:Envelope>
';
v_xmltable XMLType;
BEGIN
req := utl_http.begin_request(v_url, 'POST', utl_http.http_version_1_1);
utl_http.set_header(req, 'Content-Type', 'text/xml; charset=utf-8');
utl_http.set_header(req, 'Content-Length', length(v_content));
utl_http.write_text(req, v_content);
resp := utl_http.get_response(r => req);
dbms_output.put_line('STATUS CODE: ' || resp.status_code);
dbms_output.put_line('REASON PHRASE: ' || resp.reason_phrase);
/* utl_http.read_line(resp, v_value);
v_clob_content := v_clob_content || v_value;
dbms_output.put_line('回傳值:'||v_clob_content);*/
BEGIN
LOOP
utl_http.read_line(resp, v_value, true);
v_clob_content := v_clob_content || v_value;
dbms_output.put_line(v_clob_content);
END LOOP;
utl_http.end_response(resp);
EXCEPTION
WHEN OTHERS THEN
utl_http.end_response(resp);
END;
v_xmltable := xmltype(v_clob_content);
dbms_output.put_line(v_xmltable.extract('//return/text()')
.getNumberVal());
insert into test(test) values (v_xmltable.extract('//return/text()')
.getNumberVal());
EXCEPTION
WHEN OTHERS THEN
dbms_output.put_line(SQLCODE || ':' || SQLERRM);
dbms_output.put_line(dbms_utility.format_error_backtrace);
dbms_output.put_line(dbms_utility.format_error_stack);
END;
還有就是soapui 的request properties 配置是怎么作為請求傳遞引數到服務器去的?求解,不懂圖片上不上的了
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/113614.html
標籤:開發
