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在DOS命令行下却无法链接MySQL的技术笔记
Dec 29 PHP
基于PHP的cURL快速入门教程 (小偷采集程序)
Jun 02 PHP
Php中用PDO查询Mysql来避免SQL注入风险的方法
Apr 25 PHP
dhtmlxTree目录树增加右键菜单以及拖拽排序的实现方法
Apr 26 PHP
PHP实现删除非站内外部链接实例代码
Jun 17 PHP
PHP实现将视频转成MP4并获取视频预览图的方法
Mar 12 PHP
nginx+thinkphp下解决不支持pathinfo模式
Jul 01 PHP
PHP+Mysql+jQuery中国地图区域数据统计实例讲解
Oct 10 PHP
深入理解PHP之源码目录结构与功能说明
Jun 01 PHP
创建无限极分类树型结构的简单方法
Jun 20 PHP
PHP实现的简单在线计算器功能示例
Aug 02 PHP
php中通用的excel导出方法实例
Dec 30 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
从Web查询数据库之PHP与MySQL篇
2009/09/25 PHP
深入Apache与Nginx的优缺点比较详解
2013/06/17 PHP
一个图片地址分解程序(用于PHP小偷程序)
2014/08/23 PHP
隐藏Nginx或Apache以及PHP的版本号的方法
2016/01/03 PHP
php处理复杂xml数据示例
2016/07/11 PHP
PHP实现将base64编码字符串转换成图片示例
2018/06/22 PHP
图片自动缩小的js代码,用以防止图片撑破页面
2007/03/12 Javascript
JQuery 入门实例1
2009/06/25 Javascript
javascript Array数组对象的扩展函数代码
2010/05/22 Javascript
js获取单选框或复选框值及操作
2012/12/18 Javascript
兼容主流浏览器的iframe自适应高度js脚本
2014/01/10 Javascript
jQuery获取iframe的document对象的方法
2014/10/10 Javascript
JavaScript中的Primitive对象封装介绍
2014/12/31 Javascript
浅谈nodeName,nodeValue,nodeType,typeof 的区别
2015/01/13 Javascript
js游戏人物上下左右跑步效果代码分享
2015/08/28 Javascript
JavaScript实现简单精致的图片左右无缝滚动效果
2017/03/16 Javascript
JavaScript高阶函数_动力节点Java学院整理
2017/06/28 Javascript
微信小程序中使用Async-await方法异步请求变为同步请求方法
2019/03/28 Javascript
基于vue开发微信小程序mpvue-docs跳转页面功能
2019/04/10 Javascript
Nodejs监控事件循环异常示例详解
2019/09/22 NodeJs
React实现评论的添加和删除
2020/10/20 Javascript
[53:29]完美世界DOTA2联赛循环赛 DM vs Matador BO2第二场 11.04
2020/11/05 DOTA
[52:40]完美世界DOTA2联赛PWL S2 Magma vs GXR 第一场 11.29
2020/12/02 DOTA
用Python中的__slots__缓存资源以节省内存开销的方法
2015/04/02 Python
Python SQL查询并生成json文件操作示例
2018/08/17 Python
virtualenv 指定 python 解释器的版本方法
2018/10/25 Python
解决py2exe打包后,总是多显示一个DOS黑色窗口的问题
2019/06/21 Python
python使用yield压平嵌套字典的超简单方法
2019/11/02 Python
python flask搭建web应用教程
2019/11/19 Python
CSS3 box-sizing属性详解
2016/11/15 HTML / CSS
亚马逊西班牙购物网站:amazon西班牙
2017/03/06 全球购物
市场部经理岗位职责
2014/04/10 职场文书
工会工作先进事迹
2014/08/18 职场文书
Python中json.dumps()函数的使用解析
2021/05/17 Python
腾讯云服务器部署前后分离项目之前端部署
2022/06/28 Servers
MySQL中的 inner join 和 left join的区别解析(小结果集驱动大结果集)
2023/05/08 MySQL