ISSUE

2021


PHP 與 .NET Webservice 的溝通 (soap)  




跨系統的資料交換與溝通, MIS常會提供.NET Webservice :

Image 20

 

在php中如何發送soap 呢? 如何發送請求呢? 最簡單的方式如下, 紅色文字自行變更, 應輸出XML格式:

header('Content-Type: text/xml; charset=UTF-8'); //避免中文亂碼且輸出為 xml
$client = new SoapClient("http://www.XXX.com/GetService.asmx?WSDL", array('trace' => 1)); //網址請自行變更
$result = $client->GetCompanyCode(); //要呼叫的方法,請自行變更
echo $client->__getLastResponse();

如果順利印出xml, 可到此驗證xml: http://www.w3schools.com/xml/xml_validator.asp

 

另一個方式, 取得格式不同:


header('Content-Type: text/html; charset=UTF-8'); //避免中文亂碼
$client = new SoapClient("http://xxx.xxx.com/GetService.asmx?WSDL");  //網址請自行變更

//要傳入的參數,請自行變更,如不需傳入參數,則下方紅色字全部移除
$params = array(
  "Contact" => $contact,
  "description" => "Barrel of Oil",
  "amount" => 500,
);

$response = $client->__soapCall("Function1", array($params)); //要呼叫的方法,請自行變更

var_dump($response);
 

 

如果提供service的MIS 需要你傳入一段XML當作參數, 而非傳入一個ARRAY呢?


header('Content-Type: text/xml; charset=UTF-8'); //避免中文亂碼且輸出為 xml

$url = 'http://www.xxx.com/GetService.asmx?WSDL';
$client = new SoapClient($url);

$xmlr = new SimpleXMLElement('<?xml version="1.0" encoding="UTF-8"?><XXXX><Command><ID>30</ID></Command></XXXX>');  //自行更改要傳入的XML


$params = new stdClass();
$params->xml = $xmlr->asXML();

$result = $client->方法名稱($params); //自行更改方法名稱
echo $result->方法名稱; //自行更改方法名稱
 


前往討論區 這篇文章的網址 (可分享到FB、PTT、Mobile01):

延伸閱讀:北部新冠快篩站預約與等候結果
延伸閱讀:疫情嚴重時少出門必備工具
延伸閱讀:口罩有縫隙! 美國CDC教你knot and tuck改良自己的口罩
延伸閱讀:居家工作 網路攝影機 幫忙看門/看小孩
延伸閱讀:「公費疫苗可選廠牌」哪種廠牌好? 要投保疫苗險嗎?
延伸閱讀:WFH在家工作 急需傳真不用跑便利商店
延伸閱讀:WFH在家工作時時關心疫情 – 小米盒子(追劇看新聞)
延伸閱讀:勞工紓困貸款 貸了有何影響?
延伸閱讀:打不到新冠肺炎(COVID-19)疫苗? 先打肺炎鏈球菌疫苗?
延伸閱讀:COVID-19新冠肺炎 居家快篩試劑,保護自己保護家人
延伸閱讀:必須在長輩手機上設定的 緊急聯絡人與緊急醫療資訊 (快樂缺氧怎麼辦?!) 
延伸閱讀:打不到新冠肺炎(COVID-19)疫苗? 先打肺炎鏈球菌疫苗?
延伸閱讀:必須在長輩手機上設定的 緊急聯絡人與緊急醫療資訊 (快樂缺氧怎麼辦?!) 
延伸閱讀:打了新冠肺炎(COVID-19)疫苗 副作用 (親身經歷) 


您也許對這文章有興趣:

您也許對這文章有興趣:

數位高利活儲帳戶 (渣打/花旗/華南/台新)
數位高利活儲帳戶 (渣打/花旗/華南/台新)

Line 使用常見問題
發錯的LINE訊息可以收回或刪除嗎?

 
其它文章: 前往瀏覽目錄
本篇文章的行動版網頁: 切換到行動版本
返回頂端

Copyright © 2008-2021 Anson | Secured by SSL Connection SSL