萬盛學電腦網

 萬盛學電腦網 >> 網絡編程 >> php編程 >> php實現通過soap調用.Net的WebService asmx文件

php實現通過soap調用.Net的WebService asmx文件

小編給大家推薦的這篇文章介紹了php實現通過soap調用.Net的WebService asmx文件的教程,非常實用,有興趣的同學快來看看吧。

最近,幫一個同行測試用.net寫的WebService接口,C#調用通過,現在需要測試一下php版本對它的調用,經過各種探索,相關的PHP調用webservice的過程如下:

1.打開php相關擴展:

找到配置文件php.ini 文件, 打開以下擴展

extension = php_soap.dll

extension = php_curl.dll

extension = php_openssl.dll

2.php代碼如下:

 

 代碼如下 復制代碼

<?php

header("content-type:text/html;charset=utf-8");

$client=newSoapClient(" http://192.168.3.178:8080/ChkWelePsw.asmx?WSDL");

//本行測試不可行 $client = new SoapClient(" http://192.168.3.178:8080/chkwelepsw.asmx?WSDL/ChkWele?username=test3&psw=123");

//參數這樣傳遞 先包裝一下

$param=array('username'=>'test3','psw'=>'123');

//調用必須用__soapCall

$p=$client->__soapCall('ChkWele',array('parameters'=>$param));

print_r($p->ChkWeleResult);//這裡先輸出一下變量$p,看看是什麼類型。

?>

 

注意,在php調用某個方法後,其soap對象,就會自動產生一個Result方法,以方便顯示調用結果,如上面的 被調用端的WebService的 &ldquo;ChkWele&rdquo;方法 ,

調用端就有相應的&ldquo;ChkWeleResult&rdquo;方法。

.NET部分 webservice要注意的地方

 

 代碼如下 復制代碼

/*

 *  <system.web>在這個節點中加入如下內容

  <webServices>

   <protocols>

    <add name="HttpSoap"/>

    <add name="HttpPost"/>

    <add name="HttpGet"/>

    <add name="Documentation"/>

   </protocols>

  </webServices>

 */

[WebMethod(Description ="This......", EnableSession =false)]

publicstringChkWele(stringusername,stringpsw)

{

  stringret ="";

  returnret;

}

 

copyright © 萬盛學電腦網 all rights reserved