从 PHP 调用 SOAP Web 服务


Calling a SOAP web service from PHP

我以前从未这样做过,所以我完全处于黑暗之中。我正在使用 PHP,我需要调用在远程服务器上运行的 SOAP 服务,该服务响应带有状态代码的调用。我究竟如何拨打电话?该服务在特定 ip/端口上运行,它有一个名称,即:http://1.2.3.4:1000/ServiceName?1234 其中 1234 是我正在传递的参数,我希望服务对此给出答案。

请给我一些指导方针,谢谢!

假设您已经打开了allow_url_fopen(通常是真的),它可能像...

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

对于非常简单的请求/响应集,你基本上可以

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

如果您需要做任何"特殊"的事情,例如向服务器进行身份验证,登录,处理cookie等......您最好使用cURL,或者查看streams包装器的内容。

如果这是一个基于 SOAP/WSDL 的 Web 服务,你应该看看 SoapClient 类,因为它们基本上会为你完成大部分的跑腿工作。

否则,可以使用对 file_get_contents 的基本调用将 Web 服务的响应抓取到字符串中。

这显然只有在您只执行GET请求时才有效,因为POST和进一步的要求会查看 cURL。