首先查看php的soap扩展是否打开,默认是没有打开soap扩展的,输出phpinfo查看下,没有就在php.ini配置文件里面打开下。
下面介绍使用soap一些技巧:
$client = new SoapClient('http://xxx?wsdl');//直接复制接口地址到浏览器打开可以查看相关的接口函数和参数 xml形式
$client->soap_defencoding = 'UTF-8';//定义编码 注意编码一致防止中文乱码
$client->decode_utf8 = false;//定义编码
$client->xml_encoding = 'utf-8';//定义编码
print_r($client->__getFunctions());//取得所有的函数
print_r($client->__getTypes());//取得结构
带好参数就可以用了
$client->__soapCall('insertCampaignRetLead',array('in0'=>$info)); //执行接口函数 正常数组格式直接用__soapCall就可以调用到了
今天遇到一个java接口,有自定义struct类型就麻烦些了,
所有的例子都可以在官方网站查找到:http://www.php.net/manual/en/book.soap.php
class SOAPStruct {
function SOAPStruct($s, $i, $f)
{
$this->varString = $s;
$this->varInt = $i;
$this->varFloat = $f;
}
}
$client = new SoapClient($url);
$struct = new SOAPStruct('arg', 34, 325.325);
$soapstruct = new SoapVar($struct, SOAP_ENC_OBJECT, "SOAPStruct", http://soapinterop.org/xsd 命名空间写不写都可以 从浏览器上直接打开接口的网址可以查看到);//http://soapinterop.org/xsd
$client->echoStruct(new SoapParam($soapstruct, "inputStruct"));//echoStruct从接口上打印出来的函数 根据需要更换 赚
其实懂了后也就那么回事!
原创哦 有问题可以留言找我!
(责任编辑:ken)