2011-05-09 139 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的东西。