http://www.cnblogs.com/tianbang/archive/2012/05/07/2489149.html
接触PHP第二天,要求PHP访问WCF服务
着实痛苦,无从下手啊.
在网上查了很多资料知道PHP访问WCF很方便
<?php
$client = new SoapClient ( 'http://localhost:1447/Service1.svc?wsdl' );
....
?>
如上即可访问
但是报错,无法找到SoapClient 这个类,在网上找答案,说是要去掉php.ini中;extension=php_soap.dll的分号去掉,然后重启即可
由于不熟悉,兄弟一直在apach中的php.ini-dist中改了又改,一直无效.看了很多网站,都是说没有去掉那个分号
可是我就纳闷了,我去了咋就不行呢
蛋痛了一下午,最后甚至怀疑是不是人品出了问题
临近下班,无意间又打开了localhost这个熟悉的界面
php.ini | F:\PHP\php-5.2.14-Win32\php-apache2handler.ini |
我的天,php.ini应该是F:\PHP\php-5.2.14-Win32\php-apache2handler.ini
当即修改,立马见效.
<?php
$client = new SoapClient ( 'http://localhost:1447/Service1.svc?wsdl' );//这是复制的wcf test client的路径
$obj->x = 2;
$obj->y = 3;
$result= $client->Add ( $obj );//wcf 中add方法需要两int,你懂滴
echo $result->AddResult;//现在还没明白为啥结果集 $cc->AddResult
$strParam->str="tianbang";
$str = $client->GetStr ( $strParam);
echo $str->GetStrResult;//这里测试返回一个string,因为我想json,你懂滴
?>
总结:使用soapclient需要注意地方如下:
- 检查soap.dll是否存在
- 去掉extension=php_openssl.dll与extension=php_soap.dll前面的分号
- 认清php.ini文件
- 重启apach,你懂滴