2011-05-09 136 views
3

我從來沒有這樣做過,所以我完全處於黑暗中。 我正在使用PHP,我需要調用運行在遠程服務器上的SOAP服務,該服務響應具有狀態碼的呼叫。我如何打電話?該服務運行在特定的IP /端口上,它有一個名稱,即:http://1.2.3.4:1000/ServiceName?1234其中1234是我傳遞的參數,我期望從該服務獲得答案。從PHP調用SOAP Web服務

請給我一些指導,謝謝!

+0

這取決於。您需要確定它是否是使用SOAP消息的Web服務或使用http動詞的Web服務(Restful Web服務)。是否有WSDL? – 2011-05-09 15:51:03

+0

我被告知它的SOAP服務。我如何知道是否有WSDL? – bikey77 2011-05-09 15:56:49

+0

詢問誰告訴你這是一個SOAP服務。 – 2011-05-09 18:11:02

回答

1

假設您有(通常爲true)allow_url_fopen,它可能是那樣簡單......

$response = file_get_contents('http://1.2.3.4:1000/ServiceName?1234'); 
+0

謝謝,這工作馬上。 我希望我可以將所有評論標記爲「已接受」,但我會按時間順序記錄第一個評論。感謝ceejayoz和你們其他人。 – bikey77 2011-05-09 16:15:23

0

如果這是一個基於SOAP/WSDL的網絡服務,您應該查看SoapClient類,因爲它們將基本上爲您完成大部分工作。

否則,您可以使用對file_get_contents的基本調用來將Web服務的響應獲取到字符串中。

這顯然只適用於你只做GET請求,POST和進一步的需求請看cURL

1

對於非常簡單的請求/響應集,你基本上可以做到

$response = file_get_contents('http://1.2.3.4:1000/ServiceName?1234'); 

如果你需要做任何「特殊」的事情,比如向服務器進行身份驗證,登錄,處理cookies等等......你最好用cURL代替,或者看看streams wrapper的東西。