2012-04-25 21 views
0

我公司有一款軟件通過使用PHP中的curl通過SOAP協議定期連接一些Web服務。有時這會失敗,整個系統非常不穩定。對於將curl作爲與這些Web服務交談的主要工具,我感到有點驚訝,因爲我認爲大多數語言(包括PHP和Python)都存在健壯且成熟的高級庫,並且curl相對較低級別,並且不會提供任何錯誤處理。我對嗎?通過SOAP進行通信的最佳解決方案是什麼?有一些我可以遵循的企業標準嗎?請幫忙。正在使用CURL進行SOAP練習嗎?

+0

只需使用'soap'擴展名? http://www.php.net/soap – 2012-04-25 09:31:45

回答

0

PHP的建立SOAP客戶端已經非常強大,許多抽象的普遍需要的東西:

$this->soapClient = new SoapClient($wsdl_url); 
// What interface is available, which function can you call? 
var_dump($this->soapClient->__getFunctions()); 

// Call 
$result = $this->soapClient->someMethodExposedByTheApi(); 

// Soap Elements (Tags in the XML) are available as properties: 
echo $result->someProperty; 

// Nested Tags are available as object chain: 
echo $result->someNestedTags->nestedTag; 

我無法想象它怎麼可以是任何簡單...

如果您需要設置一個SOAP服務,你可能想使用Zend_Soap,它是一個Zend框架中的獨立組件,它可以自動構建一個基於wsdl的web服務。它也在PHP的SoapClient之上有一個包裝器,但這主要用於將命名和編碼約定融合到Zend Framework中,並且不提供更多附加功能。

但是:如果您有非常具體的要求,捲曲是可以的。如果它不時失敗並且系統不穩定,則不是捲曲問題。這可能是服務或系統的配置錯誤。

基本上SoapClient基於標準構建XML。如果您爲自己構建XML(無論出於何種原因),捲曲是可以的。