|
JavaScript用htc实现WebService的调用
步骤如下:
下载微软HTC组件:http://msdn.microsoft.com/archive/default.asp?url=/archive/en-us/samples/internet/behaviors/library/webservice/default.asp
Web服务WSDL:
<?xml version="1.0" encoding="UTF-8"?> <definitions name="WS_SYSTEM_LOGIN_SELECT" targetNamespace="SCRM4U_SERVICE" xmlns:tns="SCRM4U_SERVICE" xmlns:wsdlns="SCRM4U_SERVICE" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:tns1="SCRM4U_SERVICE"> <document> <URL>http://192.168.2.148:8080/SCRM4U_SERVICE/servlet/HLP_PWS_SYSTEM_LOGIN_SELECT.htm</URL> <line>?</line> </document> <types> <schema targetNamespace="SCRM4U_SERVICE" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" elementFormDefault="qualified"> <complexType name="W_S_LOGIN_USER_INFO"> <all> <element name="W_V_USID" type="xsd:string"> </element> <element name="W_V_USER_MEI" type="xsd:string"> </element> <element name="W_V_USID2" type="xsd:string"> </element> <element name="W_V_REM_PHR" type="xsd:string"> </element> <element name="W_V_REM_RES" type="xsd:string"> </element> <element name="W_V_USR_AST" type="xsd:string"> </element> <element name="W_V_PSN_NO" type="xsd:string"> </element> <element name="W_V_MENUROLE_ID" type="xsd:string"> </element> <element name="W_V_USR_AST_NM" type="xsd:string"> </element> <element name="W_N_USR_AST_PRI_ORD" type="xsd:long"> </element> <element name="W_V_SCHOOL_ID" type="xsd:string"> </element> <element name="W_V_EXM_NO" type="xsd:string"> </element> <element name="W_V_SCRG_NO" type="xsd:string"> </element> <element name="W_V_GRNTR_PSN_NO" type="xsd:string"> </element> </all> </complexType> <element name="WS_SYSTEM_LOGIN_SELECT.Execute"> <complexType> <sequence> <element minOccurs="1" maxOccurs="1" name="P_v_userid" type="xsd:string"/> <element minOccurs="1" maxOccurs="1" name="P_v_password" type="xsd:string"/> </sequence> </complexType> </element> <element name="WS_SYSTEM_LOGIN_SELECT.ExecuteResponse"> <complexType> <sequence> <element minOccurs="1" maxOccurs="1" name="P_s_login_user_info" type="tns1:W_S_LOGIN_USER_INFO"/> </sequence> </complexType> </element> </schema> </types> <message name="WS_SYSTEM_LOGIN_SELECT.ExecuteSoapIn"> <part name="parameters" element="tns:WS_SYSTEM_LOGIN_SELECT.Execute"/> </message> <message name="WS_SYSTEM_LOGIN_SELECT.ExecuteSoapOut"> <part name="parameters" element="tns:WS_SYSTEM_LOGIN_SELECT.ExecuteResponse"/> </message> <portType name="WS_SYSTEM_LOGIN_SELECTSoapPort"> <operation name="Execute"> <input message="wsdlns:WS_SYSTEM_LOGIN_SELECT.ExecuteSoapIn"/> <output message="wsdlns:WS_SYSTEM_LOGIN_SELECT.ExecuteSoapOut"/> </operation> </portType> <binding name="WS_SYSTEM_LOGIN_SELECTSoapBinding" type="wsdlns:WS_SYSTEM_LOGIN_SELECTSoapPort"> <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> <operation name="Execute"> <soap:operation soapAction="SCRM4U_SERVICEaction/AWS_SYSTEM_LOGIN_SELECT.Execute"/> <input> <soap:body use="literal"/> </input> <output> <soap:body use="literal"/> </output> </operation> </binding> <service name="WS_SYSTEM_LOGIN_SELECT"> <port name="WS_SYSTEM_LOGIN_SELECTSoapPort" binding="wsdlns:WS_SYSTEM_LOGIN_SELECTSoapBinding"> <soap:address location="http://192.168.2.148:8080/SCRM4U_SERVICE/servlet/aws_system_login_select"/> </port> </service> </definitions>
演示代码:
<html> <head> </head> <script language="javascript">... function doService(userid, password) ...{
//service.useService({webservice location},{webservice class name}) service.useService("http://192.168.2.148:8080/SCRM4U_SERVICE/servlet/aws_system_login_select?wsdl","WS_SYSTEM_LOGIN_SELECT"); //service.Service.callService({webmethod},{input parameters needed}) service.WS_SYSTEM_LOGIN_SELECT.callService(showResult, "Execute", userid, password); }
function showResult(result)...{
alert(result.value.W_V_USER_MEI); } </script> <body> <div id="service" style="behavior:url(./webservice.htc)" ></div> UserName:<input type="text" id="userid" name="userid"> <br/> PassWord:<input type="text" id="password" name="password"> <br/> <input type="button" value="callWebservice" onClick="doService(document.getElementById('userid').value,document.getElementById('password').value)"/> </body> </html> 注意:如果服务返回值类型是String,直接用result.value即可取到值。
|
|