首頁 >後端開發 >php教程 >php實作soap呼叫.Net的WebService asmx文件

php實作soap呼叫.Net的WebService asmx文件

高洛峰
高洛峰原創
2017-02-28 14:50:571615瀏覽

本文實例講述了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 = new SoapClient(" http://www.php.cn/:8080/ChkWelePsw.asmx?WSDL");
//本行测试不可行 $client = new SoapClient(" http://www.php.cn/:8080/chkwelepsw.asmx?WSDL/ChkWele?username=test3&psw=123");
//参数这样传递 先包装一下
$param = array(&#39;username&#39;=>&#39;test3&#39;,&#39;psw&#39;=>&#39;123&#39;);
//调用必须用__soapCall
$p = $client->__soapCall(&#39;ChkWele&#39;,array(&#39;parameters&#39; => $param));
print_r($p->ChkWeleResult); //这里先输出一下变量$p,看看是什么类型。
?>

注意,在php呼叫某個方法後,其soap對象,就會自動產生一個Result方法,以方便顯示呼叫結果,如上面的被呼叫端的WebService的「ChkWele」方法,

呼叫端就有對應的“ChkWeleResult”方法。

.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)]
public string ChkWele(string username, string psw)
{
  string ret = "";
  return ret;
}

更多 php實作soap呼叫.Net的WebService asmx檔案相關文章請關注PHP中文網!


陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn