soap

一,什么是soap,什么是wsdl,为什么要用他们

SOAP是基于XML和HTTP通信协议,xml各种平台,各种语言都支持的一个种语言。http呢它得到了所有的因特网浏览器及服务器的支持。

WSDL 指网络服务描述语言 (Web Services Description Language),是一种使用 XML 编写的文档。这种文档可描述某个 Web service。它可规定服务的位置,以及此服务提供的操作。

我是做php的,你是java的,他是做.net,如果我们三个之间要进行通信,要进行数据交换,怎么办呢?我们需要一个能和我们都能通信的工具。soap,wsdl被创造出来,使得运行在不同的操作系统并使用不同的技术和编程语言的应用程序可以互相进行通信。


二,实例

如果php要使用soap的话,通常做法是,添加了一下php的soap模块,在php.ini里面加上soap.so。

下面介绍如何使用WSDL模式和non-WSDL模式来实现服务和客户端。相对而言,使用WSDL模式来实现服务和客户端会比较容易。

1. noWSDL模式实现

服务端 server.php

<?php
class test{
  funcion show(){
      return 'hello world';
  }
}

$server = new SoapServer(null, array('uri' =>"http://test_uri/"));
$server->setClass('test');
$server->handle();

?>

客户端 client.php

<?php

$soap = new SoapClient(null, array('location' => 'http://soapserver_url/server.php','uri' => "http://test_uri/"));
print_r($soap->__getFunctions());
echo $soap->show();

?>


三. 出现的问题

1.在方法中对属性的赋值在其他方法中不起作用。

  比如在客户端调用服务端某个方法对某个属性赋值。

  在其他方法里就不能用。但在 __construct 方法中对属性的赋值是可以个在其他方法中使用的。

2. 提示 Client] looks like we got no XML document错误。

   服务器端文件在<?php ?> 标签前后都不要有任何数据包括空格,空行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值