PHP使用SOAP呼叫.net的WebService資料
需要和一個.net系統進行資料交換,對方提供了一個WebService介面,使用PHP如何呼叫這個資料呢,下面就看看使用SOAP呼叫的方法吧
這個與一般的PHP POST或GET傳值再查庫拿資料的思路有點不一樣,需要用到SOAP模組,處理方法也很簡單,就是有一些需要注意的事情。
首先確認你的PHP.ini開啟了.SOAP,就是 extension=php_soap.dll 這前面的分號去咯。
程式碼很簡單:
<?php $client = new SoapClient(`http://www.aa.net/SearchService.asmx?WSDL`);//這個SOAP地址要換成你自己的 $client->soap_defencoding = `utf-8`; $client->decode_utf8 = false; $client->xml_encoding = `utf-8`; $param = array(`param1`=>`01`, `param2`=>`02`); //$param["param1"]="01"; //$param["param2"]="02"; //$result = $client->__soapCall("GetArticle", array( $param )); $result = $client->__Call("GetArticle", array( $param )); if (is_soap_fault($result)) { trigger_error("SOAP Fault: (faultcode: {$result->faultcode}, faultstring: {$result->faultstring})", E_USER_ERROR); } else { $data = $result->GetArticleResult; //這裡返回的是類,必須使用->得到元素的值 print_r($data); } ?>
需要注意的一點是,引數是陣列外再包一層陣列,就是 array( array() )
附SOAP介面的一些引數:
以下是 SOAP 1.2 請求和響應示例。所顯示的佔位符需替換為實際值。
POST /SearchService.asmx HTTP/1.1 Host: 202.105.183.61 Content-Type: text/xml; charset=utf-8 Content-Length: length SOAPAction: "http://tempuri.org/GetTrafficViolationInfo" <?xml version="1.0" encoding="utf-8"?> <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <GetArticle xmlns="http://tempuri.org/"> <param1>string</param1> <param2>string</param2> </GetArticle> </soap:Body> </soap:Envelope>
PHP呼叫.NET的WebService 簡單例項
建立一個C#的web service,這個就不多說了,我用vs2008的wizard建立了一個最簡單的,讓它執行在:http://localhost/webservice1/service1.asmx
其中有個web method像這樣的:
[WebMethod]
public string HelloWorld()
{
return “Hello World”;
}
ok,一切就緒。在某php檔案中如下寫法: php5本身就支援SOAP呼叫Web Service:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
<?php //get localization strings from C# webservice
echo "Call web service method from C# WebService: ;
$result = $client ->GetLocalizationResource();
if (! is_soap_fault ( $result ))
{
echo "return: , $result ->GetLocalizationResourceResult;
}
else
{
echo "soap call fault" ;
}
?> |
如何聯絡我:【萬里虎】www.bravetiger.cn
【QQ】3396726884 (諮詢問題100元起,幫助解決問題500元起)
【部落格】http://www.cnblogs.com/kenshinobiy/
相關文章
- PHP呼叫webservice遇到 Soap WSDL Error - "failed to load external entityPHPWebErrorAI
- Webservice呼叫方式:axis,soap詳解Web
- Android程式使用SOAP呼叫遠端WebService服務AndroidWeb
- php如何利用soap呼叫.Net的WebServiceasmx檔案PHPWebASM
- 關於iOS-WebService SOAP AFNetworking~> 2.6.3 XML傳參呼叫方法iOSWebXML
- PHP 以 SOAP 方式呼叫介面PHP
- PHP呼叫Webservice例項PHPWeb
- php呼叫webservice的幾種方法PHPWeb
- .Net下采用GET/POST/SOAP方式動態呼叫WebService的簡易靈活方法(C#)WebC#
- php做的WebService用axis呼叫不到PHPWeb
- SOAP和WebService真是垃圾。Web
- Restful是什麼,SOAP Webservice和RESTful WebserviceRESTWeb
- 翻譯-使用Spring WebService生成SOAP Web ServiceSpringWeb
- WebService Soap架構設計Web架構
- WebService共享資料的使用Web
- (文摘)徹底理解webservice SOAP WSDLWeb
- TCP/IP、HTTP、WEBSERVICE、SOAP、ICE都使用後才有感慨TCPHTTPWeb
- PHP5 SOAP呼叫原理及實現過程PHP
- webservice快速入門-SOAP和WSDL(三)Web
- 翻譯-使用Spring呼叫SOAP Web ServiceSpringWeb
- BIRT 怎麼呼叫 Webservice 作為資料來源Web
- webservice介面呼叫Web
- ASP.NET如何定時呼叫WebService服務ASP.NETWeb
- PHP5開發之WSDL,SOAP呼叫實現過程PHP
- WebService通過SOAP頭進行身份驗證Web
- 一種WebService的呼叫方式Web
- 使用WebService釋出soap介面,並實現客戶端的https驗證Web客戶端HTTP
- Ajax呼叫WebService(一)Web
- C#呼叫webserviceC#Web
- webservice中呼叫structWebStruct
- js 呼叫 WebService 方法JSWeb
- 使用瀏覽器位址列呼叫CXF Webservice的寫法瀏覽器Web
- java動態呼叫webserviceJavaWeb
- 新增webservice呼叫日誌Web
- Axis2呼叫WebServiceWeb
- webapi建立和呼叫WebServiceWebAPI
- java使用axis 呼叫WCF webservice問題請教JavaWeb
- PHPSOAPphp調取soap的webservice連線超時的問題PHPAPPWeb