初识webservice

原创 2016年06月01日 10:28:50
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>


版权声明:本文为博主原创文章,未经博主允许不得转载。

初识人工智能

人工智能,之所以冠以“”人工“,最主要是因为其模仿人类的思维过程所产生的。而“”智能“”,怎样才算智能呢?前一阵子比较火的智能家居,最主要的形式是通过各种手机APP 或者终端远程控制各种家电开关,这种...
  • oangeli
  • oangeli
  • 2017年01月18日 23:35
  • 224

JAVA学习第一课(初识JAVA)

PS:退ACM集训队了,自己也疯玩了两天,后天就开学了,就正式大二了,该收收心好好学习啦                                                        ...
  • u013497151
  • u013497151
  • 2014年08月30日 14:51
  • 2270

webservice初识

看来最经app很火,好多同事都要么转向android开发,要么做android接口开发。而我就现在做web service 开发。做web service 之前只是听过这个名词而已,但并不知道它是做什...
  • zl544434558
  • zl544434558
  • 2013年12月22日 18:56
  • 900

初识Webservice

领导让研究研究WebService,最近多看了几眼,写点东西方便以后查看。 What is Webservice? 其实webservice我们在日常生活中现在是经常的用的。只是我们没有去在意和关...
  • wpl20070814223
  • wpl20070814223
  • 2013年02月16日 15:13
  • 358

WebService初识

Webservice是一个web服务体系,它为其他应用程序提供数据与服务,各应用程序通过网络协议和规定的一些标准数据格式来访问webservice。    webservice三种最普遍的实现方式是:...
  • fisherman_hj
  • fisherman_hj
  • 2013年11月05日 12:28
  • 598

初识WebService

一、什么是WebService?
  • u012861556
  • u012861556
  • 2015年10月25日 16:36
  • 130

【redis 基础篇一】redis初识

在JDB来了差不多一个月的时间了,在了解公司业务和框架的过程中,看到了在通过上游调用接口的过程中,使用到了redis来调用值,上游将一个参数传过来,我们通过这个参数去redis中读取部分参数,然后将所...
  • huo065000
  • huo065000
  • 2016年02月28日 18:57
  • 642

初识这种感觉

来到世间走一朝,都在尝着种种滋味,有苦,有甜,有悲,有喜,有恨,有爱。尝着,尝着,便没有味道了,而是显露出淡淡的,浅浅的微笑——谢谢,让我深爱过。      有种感觉萌生,那是什么?我不知道,...
  • mbpmatch
  • mbpmatch
  • 2014年09月30日 14:38
  • 152

初识springboot

作为目前架构设计主推的微服务模式,springboot无疑是java程序员的福音,下面就开始springboot的实战之旅。 (目前已有深入应用以及与其他各大技术框架集成,本地实践笔记40余篇,后续...
  • songhaifengshuaige
  • songhaifengshuaige
  • 2016年12月22日 13:18
  • 532

PHP攻城狮培养计划-PHP进阶:面向对象及TP5框架初识

PHP攻城狮培养计划-PHP进阶:面向对象及TP5框架初识 课程简介:  开往PHP进阶的火车已经进站,你的票准备好了吗?                   我能get哪些技能? 本...
  • sinat_40731586
  • sinat_40731586
  • 2017年10月28日 12:53
  • 604
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:初识webservice
举报原因:
原因补充:

(最多只允许输入30个字)