对webservice的一点理解

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/huangning1995/article/details/86635035

什么是webservice,有什么用

之前在单位工作,遇到过webservice这个概念,另外还有SOAPUI这个工具,在懵懵懂懂的用了许久,现在把zheg这个概念给理清楚。

webservice和RPC很类似,也是系统之间的相互调用。但是区别在于webservice是依赖于httpxiey协议的。RPC可以在传输层上自己定义协议,这样效率比较高。

那么SOAP又是什么东西?SOAP就是webservice传输的数据格式,就是这样的格式

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:web="http://WebXml.com.cn/">
   <soap:Header/>
   <soap:Body>
      <web:getMobileCodeInfo>
         <!--Optional:-->
         <web:mobileCode>15574375009</web:mobileCode>
         <!--Optional:-->
         <web:userID></web:userID>
      </web:getMobileCodeInfo>
   </soap:Body>
</soap:Envelope>

其实要理解SOAP很简单,他就是类似于HTML,HTML也是一种格式,HTML是用来给浏览器解析,展示给用户看的。

SOAP也是一样,SOAP这种格式,是返回给程序做解析处理的。

一个简单的例子

参考博文:https://blog.csdn.net/eson_15/article/details/52021319

上面参考的博文使用的是代码来调用webservice,其实还可以更简单,用soapUI工具(我在之前单位上班用的就是这个工具)

按照博文里说的,可以把wsdl撸下来

<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
	xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
	xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:tns="http://WebXml.com.cn/"
	xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/"
	xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
	targetNamespace="http://WebXml.com.cn/">
	<wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
		<a href="http://www.webxml.com.cn/" target="_blank">WebXml.com.cn</a>
		<strong>国内手机号码归属地查询WEB服务</strong>
		,提供最新的国内手机号码段归属地数据,每月更新。
		<br />
		使用本站 WEB 服务请注明或链接本站:
		<a href="http://www.webxml.com.cn/" target="_blank">http://www.webxml.com.cn/</a>
		感谢大家的支持!
		<br />
	</wsdl:documentation>
	<wsdl:types>
		<s:schema elementFormDefault="qualified" targetNamespace="http://WebXml.com.cn/">
			<s:element name="getMobileCodeInfo">
				<s:complexType>
					<s:sequence>
						<s:element minOccurs="0" maxOccurs="1" name="mobileCode"
							type="s:string" />
						<s:element minOccurs="0" maxOccurs="1" name="userID"
							type="s:string" />
					</s:sequence>
				</s:complexType>
			</s:element>
			<s:element name="getMobileCodeInfoResponse">
				<s:complexType>
					<s:sequence>
						<s:element minOccurs="0" maxOccurs="1"
							name="getMobileCodeInfoResult" type="s:string" />
					</s:sequence>
				</s:complexType>
			</s:element>
			<s:element name="getDatabaseInfo">
				<s:complexType />
			</s:element>
			<s:element name="getDatabaseInfoResponse">
				<s:complexType>
					<s:sequence>
						<s:element minOccurs="0" maxOccurs="1"
							name="getDatabaseInfoResult" type="tns:ArrayOfString" />
					</s:sequence>
				</s:complexType>
			</s:element>
			<s:complexType name="ArrayOfString">
				<s:sequence>
					<s:element minOccurs="0" maxOccurs="unbounded" name="string"
						nillable="true" type="s:string" />
				</s:sequence>
			</s:complexType>
			<s:element name="string" nillable="true" type="s:string" />
			<s:element name="ArrayOfString" nillable="true"
				type="tns:ArrayOfString" />
		</s:schema>
	</wsdl:types>
	<wsdl:message name="getMobileCodeInfoSoapIn">
		<wsdl:part name="parameters" element="tns:getMobileCodeInfo" />
	</wsdl:message>
	<wsdl:message name="getMobileCodeInfoSoapOut">
		<wsdl:part name="parameters" element="tns:getMobileCodeInfoResponse" />
	</wsdl:message>
	<wsdl:message name="getDatabaseInfoSoapIn">
		<wsdl:part name="parameters" element="tns:getDatabaseInfo" />
	</wsdl:message>
	<wsdl:message name="getDatabaseInfoSoapOut">
		<wsdl:part name="parameters" element="tns:getDatabaseInfoResponse" />
	</wsdl:message>
	<wsdl:message name="getMobileCodeInfoHttpGetIn">
		<wsdl:part name="mobileCode" type="s:string" />
		<wsdl:part name="userID" type="s:string" />
	</wsdl:message>
	<wsdl:message name="getMobileCodeInfoHttpGetOut">
		<wsdl:part name="Body" element="tns:string" />
	</wsdl:message>
	<wsdl:message name="getDatabaseInfoHttpGetIn" />
	<wsdl:message name="getDatabaseInfoHttpGetOut">
		<wsdl:part name="Body" element="tns:ArrayOfString" />
	</wsdl:message>
	<wsdl:message name="getMobileCodeInfoHttpPostIn">
		<wsdl:part name="mobileCode" type="s:string" />
		<wsdl:part name="userID" type="s:string" />
	</wsdl:message>
	<wsdl:message name="getMobileCodeInfoHttpPostOut">
		<wsdl:part name="Body" element="tns:string" />
	</wsdl:message>
	<wsdl:message name="getDatabaseInfoHttpPostIn" />
	<wsdl:message name="getDatabaseInfoHttpPostOut">
		<wsdl:part name="Body" element="tns:ArrayOfString" />
	</wsdl:message>
	<wsdl:portType name="MobileCodeWSSoap">
		<wsdl:operation name="getMobileCodeInfo">
			<wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
				<br />
				<h3>获得国内手机号码归属地省份、地区和手机卡类型信息</h3>
				<p>输入参数:mobileCode = 字符串(手机号码,最少前7位数字),userID = 字符串(商业用户ID)
					免费用户为空字符串;返回数据:字符串(手机号码:省份 城市 手机卡类型)。</p>
				<br />
			</wsdl:documentation>
			<wsdl:input message="tns:getMobileCodeInfoSoapIn" />
			<wsdl:output message="tns:getMobileCodeInfoSoapOut" />
		</wsdl:operation>
		<wsdl:operation name="getDatabaseInfo">
			<wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
				<br />
				<h3>获得国内手机号码归属地数据库信息</h3>
				<p>输入参数:无;返回数据:一维字符串数组(省份 城市 记录数量)。</p>
				<br />
			</wsdl:documentation>
			<wsdl:input message="tns:getDatabaseInfoSoapIn" />
			<wsdl:output message="tns:getDatabaseInfoSoapOut" />
		</wsdl:operation>
	</wsdl:portType>
	<wsdl:portType name="MobileCodeWSHttpGet">
		<wsdl:operation name="getMobileCodeInfo">
			<wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
				<br />
				<h3>获得国内手机号码归属地省份、地区和手机卡类型信息</h3>
				<p>输入参数:mobileCode = 字符串(手机号码,最少前7位数字),userID = 字符串(商业用户ID)
					免费用户为空字符串;返回数据:字符串(手机号码:省份 城市 手机卡类型)。</p>
				<br />
			</wsdl:documentation>
			<wsdl:input message="tns:getMobileCodeInfoHttpGetIn" />
			<wsdl:output message="tns:getMobileCodeInfoHttpGetOut" />
		</wsdl:operation>
		<wsdl:operation name="getDatabaseInfo">
			<wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
				<br />
				<h3>获得国内手机号码归属地数据库信息</h3>
				<p>输入参数:无;返回数据:一维字符串数组(省份 城市 记录数量)。</p>
				<br />
			</wsdl:documentation>
			<wsdl:input message="tns:getDatabaseInfoHttpGetIn" />
			<wsdl:output message="tns:getDatabaseInfoHttpGetOut" />
		</wsdl:operation>
	</wsdl:portType>
	<wsdl:portType name="MobileCodeWSHttpPost">
		<wsdl:operation name="getMobileCodeInfo">
			<wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
				<br />
				<h3>获得国内手机号码归属地省份、地区和手机卡类型信息</h3>
				<p>输入参数:mobileCode = 字符串(手机号码,最少前7位数字),userID = 字符串(商业用户ID)
					免费用户为空字符串;返回数据:字符串(手机号码:省份 城市 手机卡类型)。</p>
				<br />
			</wsdl:documentation>
			<wsdl:input message="tns:getMobileCodeInfoHttpPostIn" />
			<wsdl:output message="tns:getMobileCodeInfoHttpPostOut" />
		</wsdl:operation>
		<wsdl:operation name="getDatabaseInfo">
			<wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
				<br />
				<h3>获得国内手机号码归属地数据库信息</h3>
				<p>输入参数:无;返回数据:一维字符串数组(省份 城市 记录数量)。</p>
				<br />
			</wsdl:documentation>
			<wsdl:input message="tns:getDatabaseInfoHttpPostIn" />
			<wsdl:output message="tns:getDatabaseInfoHttpPostOut" />
		</wsdl:operation>
	</wsdl:portType>
	<wsdl:binding name="MobileCodeWSSoap" type="tns:MobileCodeWSSoap">
		<soap:binding transport="http://schemas.xmlsoap.org/soap/http" />
		<wsdl:operation name="getMobileCodeInfo">
			<soap:operation soapAction="http://WebXml.com.cn/getMobileCodeInfo"
				style="document" />
			<wsdl:input>
				<soap:body use="literal" />
			</wsdl:input>
			<wsdl:output>
				<soap:body use="literal" />
			</wsdl:output>
		</wsdl:operation>
		<wsdl:operation name="getDatabaseInfo">
			<soap:operation soapAction="http://WebXml.com.cn/getDatabaseInfo"
				style="document" />
			<wsdl:input>
				<soap:body use="literal" />
			</wsdl:input>
			<wsdl:output>
				<soap:body use="literal" />
			</wsdl:output>
		</wsdl:operation>
	</wsdl:binding>
	<wsdl:binding name="MobileCodeWSSoap12" type="tns:MobileCodeWSSoap">
		<soap12:binding transport="http://schemas.xmlsoap.org/soap/http" />
		<wsdl:operation name="getMobileCodeInfo">
			<soap12:operation soapAction="http://WebXml.com.cn/getMobileCodeInfo"
				style="document" />
			<wsdl:input>
				<soap12:body use="literal" />
			</wsdl:input>
			<wsdl:output>
				<soap12:body use="literal" />
			</wsdl:output>
		</wsdl:operation>
		<wsdl:operation name="getDatabaseInfo">
			<soap12:operation soapAction="http://WebXml.com.cn/getDatabaseInfo"
				style="document" />
			<wsdl:input>
				<soap12:body use="literal" />
			</wsdl:input>
			<wsdl:output>
				<soap12:body use="literal" />
			</wsdl:output>
		</wsdl:operation>
	</wsdl:binding>
	<wsdl:binding name="MobileCodeWSHttpGet" type="tns:MobileCodeWSHttpGet">
		<http:binding verb="GET" />
		<wsdl:operation name="getMobileCodeInfo">
			<http:operation location="/getMobileCodeInfo" />
			<wsdl:input>
				<http:urlEncoded />
			</wsdl:input>
			<wsdl:output>
				<mime:mimeXml part="Body" />
			</wsdl:output>
		</wsdl:operation>
		<wsdl:operation name="getDatabaseInfo">
			<http:operation location="/getDatabaseInfo" />
			<wsdl:input>
				<http:urlEncoded />
			</wsdl:input>
			<wsdl:output>
				<mime:mimeXml part="Body" />
			</wsdl:output>
		</wsdl:operation>
	</wsdl:binding>
	<wsdl:binding name="MobileCodeWSHttpPost" type="tns:MobileCodeWSHttpPost">
		<http:binding verb="POST" />
		<wsdl:operation name="getMobileCodeInfo">
			<http:operation location="/getMobileCodeInfo" />
			<wsdl:input>
				<mime:content type="application/x-www-form-urlencoded" />
			</wsdl:input>
			<wsdl:output>
				<mime:mimeXml part="Body" />
			</wsdl:output>
		</wsdl:operation>
		<wsdl:operation name="getDatabaseInfo">
			<http:operation location="/getDatabaseInfo" />
			<wsdl:input>
				<mime:content type="application/x-www-form-urlencoded" />
			</wsdl:input>
			<wsdl:output>
				<mime:mimeXml part="Body" />
			</wsdl:output>
		</wsdl:operation>
	</wsdl:binding>
	<wsdl:service name="MobileCodeWS">
		<wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
			<a href="http://www.webxml.com.cn/" target="_blank">WebXml.com.cn</a>
			<strong>国内手机号码归属地查询WEB服务</strong>
			,提供最新的国内手机号码段归属地数据,每月更新。
			<br />
			使用本站 WEB 服务请注明或链接本站:
			<a href="http://www.webxml.com.cn/" target="_blank">http://www.webxml.com.cn/</a>
			感谢大家的支持!
			<br />
		</wsdl:documentation>
		<wsdl:port name="MobileCodeWSSoap" binding="tns:MobileCodeWSSoap">
			<soap:address location="http://ws.webxml.com.cn/WebServices/MobileCodeWS.asmx" />
		</wsdl:port>
		<wsdl:port name="MobileCodeWSSoap12" binding="tns:MobileCodeWSSoap12">
			<soap12:address
				location="http://ws.webxml.com.cn/WebServices/MobileCodeWS.asmx" />
		</wsdl:port>
		<wsdl:port name="MobileCodeWSHttpGet" binding="tns:MobileCodeWSHttpGet">
			<http:address location="http://ws.webxml.com.cn/WebServices/MobileCodeWS.asmx" />
		</wsdl:port>
		<wsdl:port name="MobileCodeWSHttpPost" binding="tns:MobileCodeWSHttpPost">
			<http:address location="http://ws.webxml.com.cn/WebServices/MobileCodeWS.asmx" />
		</wsdl:port>
	</wsdl:service>
</wsdl:definitions>

这个内容不理解,没有关系,wsdl就是告诉我们这个webservice服务在什么地方,如何调用。

然后我们创建一个soapUI工厂,导入这个wsdl就可以了。

导入之后,soapUI会自动帮我们生成请求报文,我们只要填入请求参数就可以了。

这个webservice服务是查询号码归属地的,我随便输入了一个很号码,点击运行按钮,右侧就返回结构了。

 

 

猜你喜欢

转载自blog.csdn.net/huangning1995/article/details/86635035
今日推荐