Web Service 是利用SOAP(Simple Object Access Protocol)在HTTP上执行远程方法调用的一种新方法。
SOAP
POST
POST /SomeLocation/myWebService.asmx HTTP/1.1 Host: hostname Content-Type: text/xml;charset=utf-8 Content-Length: length SOAPAction: "http://tempuri.org/DoSomething" <?xml version="1.0" encoding="utf-8"?> <soap:Envelope xml:xsi="http://www.w3.org/2001/XMLSchema-instance" xml:xsd="http://www.w3.org/2001/XMLSchema" xml:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <DoSomething xmlns="http://tempuri.org/"> <stringParam>string</stringParam> <intParam>int</intParam> </DoSomething> </soap:Body> </soap:Envelope> |
GET
GET /SomeLocation/myWebService.asmx/DoSomething?stringParam=string&intParam=int HTTP/1.1 HOST: hostname |
响应
SOAP响应
HTTP/1.1 200 OK Content-Type: text/xml;charset=utf-8 Content-Length:length <?xml version="1.0" encoding="utf-8"?> <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <DoSomethingResponse xmlns="http://tempuri.org/"> <DoSomethingResult>int</DoSomethingResult> </DoSomethingResponse> </soap:Body> </soap:Envelope> |
http响应
HTTP/1.1 200 OK Content-Type: text/xml;charset=utf-8 Content-Length: length <?xml version="1.0"?> <int xmlns="http://tempuri.org">int</int> |
WSDL
WSDL可以完整的描述Web服务、可用的方法以及调用这些方法的各种格式。
WSDL最重要的部分是类型定义部分。
使用Web Service
生成代理类
- wsdl.exe
- 使用VS.NET中的Add Web Reference(这种方法可以简单的进行更新)