使用php5的SoapServer扩展创建web service(1)
2008-01-25 10:07
204 查看
学了几种语言,有时回想,却发现没什么积累,偏偏自己又喜欢卖弄;怎奈何自己又不甘堕落,于是乎就强迫自己写写日记,但是自己跟自己对话又觉得没意思, 就想着把日志写成教程,给社区里的难兄难弟没做做参考.小弟实在是没有什么经验,还望那些看到本文的有缘人多多包涵....
php5自带了一个开发web service的扩展extension=php_soap.dll;
在php.ini中加入上面扩展;同时配置ini文件的以下选项
Name Default Changeable Changelog
soap.wsdl_cache_enabled "1" PHP_INI_ALL Available since PHP 5.0.0.
soap.wsdl_cache_dir "/tmp" PHP_INI_ALL Available since PHP 5.0.0.
soap.wsdl_cache_ttl "86400" PHP_INI_ALL Available since PHP 5.0.0.
这样就可以使用SoapServer了.
那建一个文件,内容如下
<?php
class service_class {
/**
* @return string
* */
function sayHello(){
return 'hello world';
}
/**
* @param string $name;
* @return string;
*/
function getName($name){
return $name;
}
}
$server = new SoapServer('buildin.wsdl');(1)
$server->setClass('service_class');(2)
$server->handle();(3)
?>
这里有一点需要注意的是:如果要在生成的wsdl文件有类型的话,应使用方法注释;(string,integer等).
(1)生成一个实例,参数"buildin.wsdl"是wsdl文件所在的位置,因为SoapServer还没有提供生成wsdl的实现,因些要指明细wsdl文件所在的位置.
(2)注册webservice的提供的方法,默认为类里面的所有方法
(3)处理请求;
到这里为止,在浏览器中访问本php文件,如果出现如果提示
"cant find HTTP_RAW_POST_DATA";则在创建soapServer前,插入以下代码
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
if (!isset($HTTP_RAW_POST_DATA)){
$HTTP_RAW_POST_DATA = file_get_contents('php://input');
}
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
此时如果提示bad request之类的错误,说明web service已经启动了.
如果没有忘记前面前到的wsdl的话,此刻必会想即然不还不能生成wsdl文件的话,那那个buildin.wsdl从何而来呢,如果对zend studio熟悉的话,就会想到tool菜单下面的wsdl generator,对了,用这个工具可以生成很帅的wsdl文件,使用方法在这里就不多说了,自己就两下就知道是怎么生成了..
server端到此结束.
令天就先到这里,,明天接续delphi客户端如果调用.....
php5自带了一个开发web service的扩展extension=php_soap.dll;
在php.ini中加入上面扩展;同时配置ini文件的以下选项
Name Default Changeable Changelog
soap.wsdl_cache_enabled "1" PHP_INI_ALL Available since PHP 5.0.0.
soap.wsdl_cache_dir "/tmp" PHP_INI_ALL Available since PHP 5.0.0.
soap.wsdl_cache_ttl "86400" PHP_INI_ALL Available since PHP 5.0.0.
这样就可以使用SoapServer了.
那建一个文件,内容如下
<?php
class service_class {
/**
* @return string
* */
function sayHello(){
return 'hello world';
}
/**
* @param string $name;
* @return string;
*/
function getName($name){
return $name;
}
}
$server = new SoapServer('buildin.wsdl');(1)
$server->setClass('service_class');(2)
$server->handle();(3)
?>
这里有一点需要注意的是:如果要在生成的wsdl文件有类型的话,应使用方法注释;(string,integer等).
(1)生成一个实例,参数"buildin.wsdl"是wsdl文件所在的位置,因为SoapServer还没有提供生成wsdl的实现,因些要指明细wsdl文件所在的位置.
(2)注册webservice的提供的方法,默认为类里面的所有方法
(3)处理请求;
到这里为止,在浏览器中访问本php文件,如果出现如果提示
"cant find HTTP_RAW_POST_DATA";则在创建soapServer前,插入以下代码
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
if (!isset($HTTP_RAW_POST_DATA)){
$HTTP_RAW_POST_DATA = file_get_contents('php://input');
}
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
此时如果提示bad request之类的错误,说明web service已经启动了.
如果没有忘记前面前到的wsdl的话,此刻必会想即然不还不能生成wsdl文件的话,那那个buildin.wsdl从何而来呢,如果对zend studio熟悉的话,就会想到tool菜单下面的wsdl generator,对了,用这个工具可以生成很帅的wsdl文件,使用方法在这里就不多说了,自己就两下就知道是怎么生成了..
server端到此结束.
令天就先到这里,,明天接续delphi客户端如果调用.....
相关文章推荐
- 使用php5的SoapServer扩展创建web service(1)
- 使用Swift创建一个SOAP的请求
- 使用Apache CXF和Spring集成创建Web Service(zz)
- 使用 Dojo TreeGrid 管理 WebSphere Process Server 工作流为数据创建 Web 2.0 风格的 UI
- 创建和使用SQL Server SSAS本地多维数据集
- 使用 Engine 对象创建 SQL Server Compact Edition 数据库
- 使用Java创建RESTful Web Service
- ASP.NET MVC 5 - 创建连接字符串(Connection String)并使用SQL Server LocalDB
- PHP - 使用SOAP实现WEB SERVICE
- onvif规范的实现:使用gSOAP创建SOAP调用实例
- crm使用soap创建下拉框
- Web Service: Server did not recognize the value of HTTP Header SOAPAction 一点理论依据
- 如何创建一个类似 Instagram 的使用 Web Service 作后台的应用 第二部分
- 使用扩展方法创建 HTML Helper
- 使用C++创建Pyd文件扩展Python模块
- Chapter 1 Securing Your Server and Network(10):使用扩展保护避免授权中继攻击
- (转)[翻译] ASP.NET MVC Tip #1 - 使用扩展方法创建新的HTML Helper
- WebService开发(二) 如何使用Soap扩展
- 使用Create EndPoint创建本机XML Web Service
- sql server for 使用网络路径创建数据库