最近工作中需要用php调用web service接口,对php不熟,上网搜搜,发现关于用php调用web service的文章也不多,不少还是php4里用nusoap这个模块调用的方法,其实php5里已经包含了处理soap的模块,但是资料太少了,上php官网上查帮助,写的不是很容易理解,经过多次实践,终于搞清楚了,php调用web service还是非常简单的。下面用一个例子说明:
web service服务是一个用java写的简单服务,环境为Tomcat6.0 + Axis2,暴露的方法为 String hello(String name)
传递一个String参数name,然后返回给客户端。
使用php5开发客户端:
<?php
header("content-type:text/html;charset=utf-8");
try {
//$client = new SoapClient("HelloService.wsdl",array('encoding'=>'UTF-8'));
$client = new SoapClient("http://localhost:8080/axis2/services/HelloService?wsdl",array('encoding'=>'UTF-8'));
var_dump($client->__getFunctions());
print("<br/>");
var_dump($client->__getTypes());
print("<br/>");
$parm1 = "php client call";
$param = array('param0' => $parm1);
$arr = $client->hello($param);
print_r($arr);
} catch (SOAPFault $e) {
print $e;
}
?>
代码确实很简单吧,创建SoapClient对象时,可以使用保存在本地WSDL文件,也可以使用远程的地址,后面的array数组里可以带上很多的参数,具体参数可以查php的SoapClient帮助,这里带的是字符集编码,如果调用方法的参数里有中文,一定要指定字符集编码,否则会出错。
调用web service前可以先调用SoapClient的__geunctions()和__getTypes()方法看一下你要调用的web service暴露的方法,参数和数据类型,需要注意的是传入的参数名一定要和soapclient里面定义的一致,否则参数是传不过去的。
不知道WSDL的情况也可以调用WS,需要使用SoapClient的__soapCall()或__call()方法,具体使用方法可以查php的帮助文档。
另外发现个问题,如果web service方法返回的是xml格式的字符串,php接收到以后会自己把数据内容解析出来,而不是xml字符串.
分享到:
相关推荐
本文主要介绍了如何使用Zend Studio for Eclipse生成WSDL文件,并利用PHP编写和调用Web Service。以下是详细步骤及关键知识点: 1. **Web Service基础**:Web Service是一种基于互联网的、平台无关的交互方式,允许...
在JavaScript中调用Web Service,可以实现Web页面与服务器端业务逻辑的交互,无需刷新整个页面,提高了用户体验。 在这个名为"js调用web service的组件-webservice.rar"的压缩包中,包含了一个名为"webservice.htc...
总的来说,创建Web应用程序和服务以及调用Web Service是IT专业人员必备的技能。从需求分析、设计、编码到测试,每个环节都需要严谨对待。通过学习和实践,你可以开发出高效、稳定的Web应用,为用户提供卓越的体验。
axis1.4 spring3.0 集成 实现 web service 服务端, axis1.4 客户端认证,授权,访问日志记录,集成spring 解决 PHP 调用web service 无法认证,和解析soap 模板
在实际开发中,有许多工具和框架可以帮助我们创建和使用XML Web Service,如Java的JAX-WS、.NET的ASP.NET Web Service、PHP的SOAP扩展等。这些工具通常简化了WSDL生成、SOAP消息处理等复杂任务。 六、安全考虑 XML ...
首先,我们要理解Java调用Web服务的基本概念。在Java中,通常使用JAX-WS或JAX-RS等标准API来调用基于SOAP或RESTful的Web服务。然而,对于Hessian协议,我们需要使用特定的库,如Hessian库,它提供了对Hessian协议的...
本实例专注于PHP调用Web服务以及使用MyEclipse创建Web服务的详细过程,这对于初学者来说是一个很好的学习资源。 首先,让我们深入理解PHP调用Web服务的概念。Web服务通常基于SOAP(Simple Object Access Protocol)...
- 为界面中的按钮或其他控件添加事件处理方法,这些方法负责调用Web服务。 5. **运行富客户端**: - 确保服务端的Web Service已经启动并在运行。 - 运行客户端程序,可以观察到客户端与服务端之间的交互效果。 #...
6. **代码示例**: 教程中的代码部分应该包含了创建和调用Web Service的实际示例,涵盖了从定义接口、实现服务到生成客户端代理类的全过程。通过这些示例,学习者可以深入理解Delphi 6中Web Service开发的每个步骤。 ...
标题"‘C#使用PHP服务端的Web Service.zip’"表明了这个压缩包包含了关于如何使用C#调用PHP服务器上的Web Service的资源。这通常涉及到开发C#客户端应用程序,利用.NET Framework中的Web服务客户端代理类,来与PHP...
4. **SOAP客户端库**:大多数编程语言都有对应的SOAP客户端库,如Java的JAX-WS,Python的suds,PHP的SoapClient等,它们简化了动态调用Web Service的过程。开发者只需要提供WSDL地址,库会自动生成对应的调用方法。 ...
综上所述,PHP Web Service涉及到的技术包括SOAP、WSDL,以及如何在PHP中实现和调用这些服务。通过源码分析和工具使用,开发者可以构建自己的Web Service,实现应用程序之间的数据交换和功能整合。
对于客户端,他们需要使用SOAP客户端库(如PHP的`SoapClient`)来调用Web服务。以下是一个简单的客户端示例: ```php $client = new SoapClient('http://example.com/service.php?wsdl', array('trace' => 1)); $...
3. **SOAP客户端生成**:开发者可以利用WSDL生成客户端代码,简化调用Web服务的步骤。 在实际开发中,有许多工具和库可以帮助开发者实现SOAP通信,如Java的JAX-WS,.NET的ASMX和WCF,以及PHP的SoapClient等。 总结...
6. 软件重用:Web Service 促进了代码和业务逻辑的重用,开发人员可以通过调用已有的Web Service来快速构建新应用,减少重复工作,提高开发效率。 7. 商业流程集成:Web Service 可以作为构建复杂业务流程的基础,...
总结来说,PHP 创建和调用 Web Service 需要理解 SOAP 和 WSDL 的概念,编写服务端类来实现功能,并使用 `SoapServer` 处理请求。在客户端,使用 `SoapClient` 调用服务并获取响应。通过这种方式,PHP 应用程序可以...
- 调用Web服务时,应处理可能出现的网络错误、解析错误和业务逻辑错误。C#中的`try-catch`语句用于捕获异常,PHP的`catchable fatal error`或`catch`块用于类似目的。 6. **安全性**: - 考虑到安全性,可能需要...
本文将深入探讨如何使用PHP调用由C#编写的Web服务(WebService)。首先,我们需要理解这两个技术的基本概念。 **PHP**(Hypertext Preprocessor)是一种广泛使用的开源脚本语言,尤其适合于Web开发,可以嵌入到HTML...
通过深入研究这个压缩包内的文件,你可以了解到如何在Spring MVC环境中配置和使用CXF来创建和调用Web Service,以及如何处理相关的请求和响应。这将是一个宝贵的学习资源,有助于提升你在企业级Java开发中的技能。