初识webservice

来源:互联网 发布:编程原本 pdf下载 编辑:程序博客网 时间:2024/06/03 08:56
webservice是一个可在不同语言之间传递数据的web应用程序,它可基于xml标准约定双方通信协议数据,以下介绍的webservice通信方式是soap【简单对象访问协议Simple Object Access Protocol】,采用的xml标准是wsdl协议【即生成wsdl格式文件】,它会将用户提供的接口【包括接口参数列表,返回类型,接口名称,xml namespace,soap namespace等,最下面有我复制的wsdl文件内容例子】
跨语言性:php本身自带的soap模块【需要将php.ini配置文件中的extension=php_soap.dll前面的分号去掉,在这里分号为注释符号】可实现对基于soap的webservice接口进行访问获取数据,如的C#代码生成的webservice也可使用php代码调用:
$soap = new SoapClient('http://localhost:2657/WebService.asmx?wsdl');$result = $soap->__call('HelloWorld',array());var_dump($result);
打印结果为:
<span style="font-family: Arial, Helvetica, sans-serif;">object(stdClass)#2 (1) { ["HelloWorldResult"]=> string(11) "Hello World" }</span>


请求的接口代码1【C#】

using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.Services;namespace testForWebService{    /// <summary>    /// WebService 的摘要说明    /// </summary>    [WebService(Namespace = "http://tempuri.org/")]    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]    [System.ComponentModel.ToolboxItem(false)]    // 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消注释以下行。     // [System.Web.Script.Services.ScriptService]    public class WebService : System.Web.Services.WebService    {        [WebMethod]        public string HelloWorld()        {            return "Hello World";        }    }}


生成wsdl文件内容

<wsdl:definitions 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://tempuri.org/"xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" 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://tempuri.org/"><wsdl:types><s:schema elementFormDefault="qualified" targetNamespace="http://tempuri.org/"><s:element name="HelloWorld"><s:complexType/></s:element><s:element name="HelloWorldResponse"><s:complexType><s:sequence><s:element minOccurs="0" maxOccurs="1" name="HelloWorldResult" type="s:string"/></s:sequence></s:complexType></s:element></s:schema></wsdl:types><wsdl:message name="HelloWorldSoapIn"><wsdl:part name="parameters" element="tns:HelloWorld"/></wsdl:message><wsdl:message name="HelloWorldSoapOut"><wsdl:part name="parameters" element="tns:HelloWorldResponse"/></wsdl:message><wsdl:portType name="WebServiceSoap"><wsdl:operation name="HelloWorld"><wsdl:input message="tns:HelloWorldSoapIn"/><wsdl:output message="tns:HelloWorldSoapOut"/></wsdl:operation></wsdl:portType><wsdl:binding name="WebServiceSoap" type="tns:WebServiceSoap"><soap:binding transport="http://schemas.xmlsoap.org/soap/http"/><wsdl:operation name="HelloWorld"><soap:operation soapAction="http://tempuri.org/HelloWorld" 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="WebServiceSoap12" type="tns:WebServiceSoap"><soap12:binding transport="http://schemas.xmlsoap.org/soap/http"/><wsdl:operation name="HelloWorld"><soap12:operation soapAction="http://tempuri.org/HelloWorld" style="document"/><wsdl:input><soap12:body use="literal"/></wsdl:input><wsdl:output><soap12:body use="literal"/></wsdl:output></wsdl:operation></wsdl:binding><wsdl:service name="WebService"><wsdl:port name="WebServiceSoap" binding="tns:WebServiceSoap"><soap:address location="http://localhost:2657/WebService.asmx"/></wsdl:port><wsdl:port name="WebServiceSoap12" binding="tns:WebServiceSoap12"><soap12:address location="http://localhost:2657/WebService.asmx"/></wsdl:port></wsdl:service></wsdl:definitions>


0 0