当前位置:首页 > PHP教程 > php高级应用 > 列表

php实现通过soap调用.Net的WebService asmx文件

发布:smiling 来源: PHP粉丝网  添加日期:2018-08-03 16:52:26 浏览: 评论:0 

最近,帮一个同行测试用.net写的WebService接口,C#调用通过,现在需要测试一下php版本对它的调用,经过各种探索,相关的PHP调用webservice的过程如下:

1.打开php相关扩展:

找到配置文件php.ini 文件, 打开以下扩展

extension = php_soap.dll

extension = php_curl.dll

extension = php_openssl.dll

2.php代码如下:

  1. <?php 
  2. header("content-type:text/html;charset=utf-8"); 
  3. $client=newSoapClient(" http://192.168.3.178:8080/ChkWelePsw.asmx?WSDL"); 
  4. //本行测试不可行 $client = new SoapClient(" http://192.168.3.178:8080/chkwelepsw.asmx?WSDL/ChkWele?username=test3&psw=123"); 
  5. //参数这样传递 先包装一下 
  6. $param=array('username'=>'test3','psw'=>'123'); 
  7. //调用必须用__soapCall 
  8. $p=$client->__soapCall('ChkWele',array('parameters'=>$param)); 
  9. print_r($p->ChkWeleResult);//这里先输出一下变量$p,看看是什么类型。 
  10. ?> 

注意,在php调用某个方法后,其soap对象,就会自动产生一个Result方法,以方便显示调用结果,如上面的 被调用端的WebService的 &ldquo;ChkWele&rdquo;方法 ,

调用端就有相应的&ldquo;ChkWeleResult&rdquo;方法。

.NET部分 webservice要注意的地方。

  1. /* 
  2.  *  <system.web>在这个节点中加入如下内容 
  3.   <webServices> 
  4.    <protocols> 
  5.     <add name="HttpSoap"/> 
  6.     <add name="HttpPost"/> 
  7.     <add name="HttpGet"/> 
  8.     <add name="Documentation"/> 
  9.    </protocols> 
  10.   </webServices> 
  11.  */ 
  12. [WebMethod(Description ="This......", EnableSession =false)] 
  13. publicstringChkWele(stringusername,stringpsw) 
  14.   stringret =""
  15.   returnret; 

Tags: soap WebService

分享到: