分享
 
 
 

SOAP

王朝百科·作者佚名  2010-02-22
窄屏简体版  字體: |||超大  

soap

n.

(英文)肥皂

SOAP:简单对象访问协议

(SOAP:Simple Object Access Protocol)

简单对象访问协议(SOAP)是一种轻量的、简单的、基于 XML 的协议,它被设计成在 WEB 上交换结构化的和固化的信息。 SOAP 可以和现存的许多因特网协议和格式结合使用,包括超文本传输协议( HTTP),简单邮件传输协议(SMTP),多用途网际邮件扩充协议(MIME)。它还支持从消息系统到远程过程调用(RPC)等大量的应用程序。

SOAP 包括三个部分:

SOAP 封装:它定义了一个框架 , 该框架描述了消息中的内容是什么,谁应当处理它以及它是可选的还是必须的。

SOAP 编码规则:它定义了一种序列化的机制,用于交换应用程序所定义的数据类型的实例。

SOAP RPC 表示:它定义了用于表示远程过程调用和应答的协定。

SOAP 消息基本上是从发送端到接收端的单向传输,但它们常常结合起来执行类似于请求 / 应答的模式。所有的 SOAP 消息都使用 XML 编码。一条 SOAP 消息就是一个包含有一个必需的 SOAP 的封装包,一个可选的 SOAP 标头和一个必需的 SOAP 体块的 XML 文档。

把 SOAP 绑定到 HTTP 提供了同时利用 SOAP 的样式和分散的灵活性的特点以及 HTTP 的丰富的特征库的优点。在 HTTP 上传送 SOAP 并不是说 SOAP 会覆盖现有的 HTTP 语义,而是 HTTP 上的 SOAP 语义会自然的映射到 HTTP 语义。在使用 HTTP 作为协议绑定的场合中, RPC 请求映射到 HTTP 请求上,而 RPC 应答映射到 HTTP 应答。然而,在 RPC 上使用 SOAP 并不仅限于 HTTP 协议绑定。

SOAP也可以绑定到TCP和UDP协议上。

协议结构

SOAP 消息格式:

SOAP 标头

<SOAP-ENV: Envelope

Attributes>

<SOAP-ENV:Body

Attributes>

</SOAP-ENV:Body>

</SOAP-ENV:Envelope>目前主要在web服务中运用。

SOAPAction WEB编码中常见,协议开始起始意思,常见于编码启始句。

语法规则这里是一些重要的语法规则:

SOAP 消息必须用 XML 来编码

SOAP 消息必须使用 SOAP Envelope 命名空间

SOAP 消息不能包含 DTD 引用

SOAP 消息不能包含 XML 处理指令

SOAP 消息的基本结构<?xml version="1.0"?>

<soap:Envelope

xmlns:soap="http://www.w3.org/2001/12/soap-envelope"

soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">

<soap:Header>

...

...

</soap:Header>

<soap:Body>

...

...

<soap:Fault>

...

...

</soap:Fault>

</soap:Body>

</soap:Envelope>

PHP SOAP实例php提供了一个专门用于soap操作的扩展库,使用该扩展库后

可以直接在php中进行soap操作。下面将介绍soap的基本操作。

一、soap扩展的使用方法

php的soap扩展库通过soap协议实现了客服端与服务器端的

数据交互操作。从php5.0后,php就自带了soap的支持。使用

soap扩展库首先需要修改php安装目录下的配置文件php.ini

来激活soap扩展库。

在php.ini文件中找到如下所示的一行代码,去掉前面的注释(;)。

;extension=php_soap.dll

修改后,重启web服务器即可激活soap扩展。在soap扩展库中,主要

包括三种对象。

1、SoapServer

SoapServer用于创建php服务器端页面时定义可被调用的函数及返回

响应数据。创建一个SoapServer对象的语法格式如下:

$soap = new SoapServer($wsdl,$array);

其中,$wsdl为shoap使用得wsdl文件,wsdl是描述Web Service的一种

标准格式,若将$wsdl设置为null,则表示不使用wsdl模式。$array是

SoapServer的属性信息,是一个数组。

SoapServer对象的addFunction方法是用来声明哪个函数可以被客户端调用,

语法格式如下:

$soap->addFunction($function_name);

其中,$soap是一个SoapServer对象,$function_name是需要被调用的函数名。

SoapServer对象的handle方法用来处理用户输入并调用相应的函数,最后返回

给客户端处理的结果。语法格式如下:

$soap->handle([$soap_request]);

其中,$soap是一个SoapServer对象,$soap_request是一个可选参数,用来表示

用户的请求信息。如果不指定$soap_request,则表示服务器将接收用户的全部

请求。

2、SoapCliet

SoapClient用于调用远程服务器上的SoapServer页面,并实现了对相应函数的调用

。创建一个SoapClient对象的语法格式如下:

$soap = new SoapClient($wsdl,$array);

其中,参数$wsdl和$array与SoapServer相同。

创建SoapClient对象后,调用服务端页面中的函数相当于调用了SoapClient的方法,

创建语法如下:

$soap->user_function($params);

其中,$soap是一个SoapClient对象,user_function是服务器端要调用的函数,$params

是要传入函数的参数。

3、SoapFault

SoapFault用于生成soap访问过程中可能出现的错误。创建一个soapFault对象的语法格式

如下:

$fault = new SoapFault($faultcode,$faultstring);

其中,$faultcode是用户定义的错误代码,$faultstring是用户自定义的错误信息。soapFault

对象会在服务器端页面出现错误时自动生成,或者通过用户自行创建SoapFault对象时生成。对于

Soap访问时出现的错误,客户端可通过捕捉SoapFalut对象来获得相应的错误信息。

在客户端捕获SoapFault对象后,可以通过下面的代码获得错误代码和错误信息。

$fault->faultcode;//错误代码

$fault->faultstring;//错误信息

其中,$fault是在前面创建的SoapFault对象。

约翰·“肥皂”·麦克塔维什上尉(Cpt. John "Soap" MacTavish):《使命召唤4:现代战争》的主角,在《使命召唤6:现代战争2》时已升任上尉,并在游戏中代替普莱斯上尉的位置来指导玩家作战。

(至今生死未卜,注:现代战争6里的结局,索普中了一刀 被抬上了飞机)

外号SOAP,中文名:索普

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有