`
magicmind
  • 浏览: 74618 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
社区版块
存档分类
最新评论

php调用web service

    博客分类:
  • web
阅读更多

最近工作中需要用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

    该文档详细描述了利用Zend Studio for Eclipse 生成wsdl文件,用php编写提供web service 的服务程序,然后用php调用,亲测通过

    axis1.4 spring3.0 集成 实现 web service

    axis1.4 spring3.0 集成 实现 web service 服务端, axis1.4 客户端认证,授权,访问日志记录,集成spring 解决 PHP 调用web service 无法认证,和解析soap 模板

    java调用hessianphp写得web service

    本文给出了一个java语言作为客户端,hessianphp语言写得web service的示例代码,和详细的说明。

    php rpc远程过程调用

    很简单的远程过程调用支持包, 比web service更简单的体现远程调用

    php-webdriver, 用于 web service的瘦php客户端.zip

    php-webdriver, 用于 web service的瘦php客户端 php --是一个非常薄描述这个客户机目的尽可以能薄,使用PHP的动态特性,使得几乎所有API调用都可以以直接转换。大多数客户要求首先阅读协议,看看有什么可能,然后...

    PHP调用.NET的WebService 简单实例

    创建一个C#的web service,这个就不多说了,我用vs2008的wizard创建了一个最简单的,让它运行在:...在某php文件中如下写法: php5本身就支持SOAP调用Web Service: &lt;?php //get localization strings from C# webs

    WebSevice,,,调用webservice服务的方法访问数据库

    现在要求用户能够注册自己的信息,能够...在aspx页面后台禁止直接访问数据库。考生必须自己建立一个webservice服务,在服务里写好对数据库的增、删、改、查的方法,然后页面后台通过调用webservice服务的方法访问数据库

    PHP调用JAVA的WebService简单实例

    使用PHP调用JAVA语言开发的WebService。客户端提交两个String类型的参数,服务端返回一个对象类型。服务端使用AXIS-1.4作为SOAP引擎。客户端为PHP5.2.9,使用NuSOAP作为SOAP引擎。 服务端 对象类复制代码 代码如下:...

    php如何调用webservice应用介绍

    1.1、Web Service基本概念 Web Service也叫XML Web Service WebService是一种可以接收从Internet或者Intranet上的其它系统中传递过来的请求,轻量级的独立的通讯技术。是:通过SOAP在Web上提供的软件服务,使用WSDL...

    C#使用PHP服务端的Web Service通信实例

    注:本例中构建Web Service采用SOAP方式,通过php插件NuSoap来搭建SOAP服务器。复制代码 代码如下:&lt;?require_once(“lib/nusoap.php”); //调用NuSoap $server = new soap_server(); //创建soap服务端$server-&gt;...

    致远A8-M平台API参考手册

    1、 可以跳过 SOAP,直接调用 Web service 的 Java 本地接口实现。 2、 可以略过下面几节,直接从服务列表开始阅读,在 Java 项目中包含 seeyon-api.jar 和 v3x-services.jar 即可。 3、 编写的代码必须与 A8 部署...

    DONSEE身份证阅读器读卡器安卓网页开发包读卡驱动,支持Web系统和Uniapp等SDK二次开发对接

    支持H5、Vue、React、Node.js、jQuery、Electron、Uniapp、JSP、PHP、ASP、ASPX、JS、HTML等开发语言。 各web浏览器测试版本: 谷歌Chrome:92.*.*.* / 火狐Firefox:90.* / 360安全浏览器:13.*.*.* / 360极速...

    Android、iPhone和Java、php四个平台一致的3des加密的类

    因为手机端后台通常是用php开发的Web Service,Android和iPhone客户端调用同样的Web Service接口,为了数据安全考虑,要对数据进行加密。以前用java做后台时候有过加密,就拿过来,用php调通了,在3个平台间加解密的...

    PHP中调用ASP.NET的WebService的代码

    在某php文件中如下写法: php5本身就支持SOAP调用Web Service: 复制代码 代码如下: &lt;?php //get localization strings from C# webservice $client = new SoapClient(...

    PHP中如何调用webservice的实例参考

    下面用一个例子说明:web service服务是查询QQ用户是否在线 使用php5开发客户端:复制代码 代码如下:&lt;?phptry { //$client = new SoapClient(“HelloService.wsdl”,array(‘encoding’=&gt;’UTF-8’)); $client ...

    常见php与mysql中文乱码问题解决办法

    乱码问题1:用PHPmyAdmin操作MySQL数据库汉字显示正常,但用PHP网页显示MySQL数据时所有汉字都变成了?号。 症状:用PHPmyAdmin输入汉字正常,但当PHP网页显示MySQL数据时汉字就变成了?号,并且有多少个汉字就有多少...

    最全面的 PHP webservice 接口,服务器端,客户端接口

    WebService是一种跨编程语言和跨操作系统平台的远程调用技术。仅仅有通过Web Service,client和server才可以自由的用HTTP进行通信。不论两个程序的平台和变成语言是什么。 XML、SOAP和WSDL是Web Service平台的三大...

    php网络开发完全手册

    16.5.1 PHP调用存储过程 277 16.5.2 PHP调用触发器 277 16.6 小结 279 第17章 Session与Cookie 280 17.1 Session与Cookie简介 280 17.2 PHP中Session的实现 280 17.2.1 开始使用Session 280 17.2.2 Session预定义...

    JSP API接口和返回的版本

    对于服务器端程序,我们应该将它命名为 server.php(这是因为客户端调用时用的是这个名字,而不是 PHPRPC 的什么规定),然后把它放在本地 Web 服务器的根目录下,并保证服务器可以正常运行 PHP 程序,之后在浏览器...

Global site tag (gtag.js) - Google Analytics