PHP与WCF第一次亲密接触

时间:2022-01-25 20:53:59

 

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需要注意地方如下:

  1. 检查soap.dll是否存在
  2. 去掉extension=php_openssl.dll与extension=php_soap.dll前面的分号
  3. 认清php.ini文件
  4. 重启apach,你懂滴