PHP使用SOAP调用.net的WebService数据


Posted in PHP onNovember 12, 2013

这个与一般的PHP POST或GET传值再查库拿数据的思路有点不一样,需要用到SOAP模块,处理方法也很简单,就是有一些需要注意的事情。
首先确认你的PHP.ini开启了.SOAP,就是 extension=php_soap.dll 这前面的分号去咯。
代码很简单:

<?php
$client = new SoapClient('http://www.aa.net/SearchService.asmx?WSDL');//这个SOAP地址要换成你自己的
$client->soap_defencoding = 'utf-8';  
$client->decode_utf8 = false;   
$client->xml_encoding = 'utf-8'; 
$param = array('param1'=>'01', 'param2'=>'02');
//$param["param1"]="01";
//$param["param2"]="02";
//$result = $client->__soapCall("GetArticle", array( $param ));
$result = $client->__Call("GetArticle", array( $param ));
if (is_soap_fault($result))
{
    trigger_error("SOAP Fault: (faultcode: {$result->faultcode}, faultstring: {$result->faultstring})", E_USER_ERROR);
}
else
{
    $data = $result->GetArticleResult; //这里返回的是类,必须使用->得到元素的值
    print_r($data);
}
?>

需要注意的一点是,参数是数组外再包一层数组,就是 array( array() )
附SOAP接口的一些参数:
以下是 SOAP 1.2 请求和响应示例。所显示的占位符需替换为实际值。
POST /SearchService.asmx HTTP/1.1
Host: 202.105.183.61
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "http://tempuri.org/GetTrafficViolationInfo"
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <GetArticle xmlns="http://tempuri.org/">
      <param1>string</param1>
      <param2>string</param2>
    </GetArticle>
  </soap:Body>
</soap:Envelope>
PHP 相关文章推荐
PHP与javascript对多项选择的处理
Oct 09 PHP
一篇不错的PHP基础学习笔记
Mar 18 PHP
php 无限级分类学习参考之对ecshop无限级分类的解析 带详细注释
Mar 23 PHP
php中$_REQUEST、$_POST、$_GET的区别和联系小结
Nov 23 PHP
php中一个有意思的日期逻辑处理
Mar 25 PHP
在Mac OS的PHP环境下安装配置MemCache的全过程解析
Feb 15 PHP
Centos 6.5下PHP 5.3安装ffmpeg扩展的步骤详解
Mar 02 PHP
ThinkPHP5框架实现简单的批量查询功能示例
Jun 07 PHP
PDO::beginTransaction讲解
Jan 27 PHP
Yii2框架操作数据库的方法分析【以mysql为例】
May 27 PHP
php提供实现反射的方法和实例代码
Sep 17 PHP
浅谈thinkphp的nginx配置,以及重写隐藏index.php入口文件方法
Oct 12 PHP
php获取远程图片体积大小的实例
Nov 12 #PHP
php过滤XSS攻击的函数
Nov 12 #PHP
php获取新浪微博数据API实例
Nov 12 #PHP
php生成N个不重复的随机数实例
Nov 12 #PHP
三种php连接access数据库方法
Nov 11 #PHP
PHP中ob_start函数的使用说明
Nov 11 #PHP
PHP开发工具ZendStudio下Xdebug工具使用说明详解
Nov 11 #PHP
You might like
中国站长站 For Dede4.0 采集规则
2007/05/27 PHP
php header()函数使用说明
2008/07/10 PHP
Drupal7连接多个数据库及常见问题解决
2014/03/02 PHP
php获取URL中带#号等特殊符号参数的解决方法
2014/09/02 PHP
php结合正则批量抓取网页中邮箱地址
2015/05/19 PHP
PHP判断上传文件类型的解决办法
2015/10/20 PHP
Zend Framework教程之响应对象的封装Zend_Controller_Response实例详解
2016/03/07 PHP
jquery ready函数源代码研究
2009/12/06 Javascript
jquery tablesorter.js 支持中文表格排序改进
2009/12/09 Javascript
input的focus方法使用
2010/03/13 Javascript
javascript使用数组的push方法完成快速排序
2014/09/15 Javascript
jQuery中insertAfter()方法用法实例
2015/01/08 Javascript
Ext JS框架程序中阻止键盘触发回退或者刷新页面的代码分享
2016/06/07 Javascript
jQuery常见的选择器及用法介绍
2016/12/20 Javascript
基于JavaScript 性能优化技巧心得(分享)
2017/12/11 Javascript
利用JS响应式修改vue实现页面的input值
2019/09/02 Javascript
基于vue实现图片验证码倒计时60s功能
2019/12/10 Javascript
[01:10:58]KG vs TNC 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
python读取oracle函数返回值
2016/07/18 Python
Python操作MongoDB详解及实例
2017/05/18 Python
Java分治归并排序算法实例详解
2017/12/12 Python
python事件驱动event实现详解
2018/11/21 Python
在Python中COM口的调用方法
2019/07/03 Python
Python使用turtle库绘制小猪佩奇(实例代码)
2020/01/16 Python
Python生成器常见问题及解决方案
2020/03/21 Python
Jupyter notebook运行Spark+Scala教程
2020/04/10 Python
利用scikitlearn画ROC曲线实例
2020/07/02 Python
利用python 下载bilibili视频
2020/11/13 Python
BeautifulSoup获取指定class样式的div的实现
2020/12/07 Python
python Scrapy框架原理解析
2021/01/04 Python
python中的unittest框架实例详解
2021/02/05 Python
海南地接欢迎词
2014/01/14 职场文书
党员对照检查剖析材料
2014/10/13 职场文书
如何有效防止sql注入的方法
2021/05/25 SQL Server
Java后端 Dubbo retries 超时重试机制的解决方案
2022/04/14 Java/Android
Python中使用tkFileDialog实现文件选择、保存和路径选择
2022/05/20 Python