PHP中的SOAP。我如何获得回报?

时间:2014-03-24 08:50:29

标签: php web-services api soap wsdl

所以,我会马上出来说我对SOAP很新。

我已经完成了很长一段时间的PHP和XML,但实际上从未用WSDL和SOAP做过任何事情。所以这里(希望这不是太愚蠢)。

我有一个我想要求的WSDL文件。 例如:http://whateverservice.org/?wsdl

我想为一个名为“JobAPI_CheckConnection”的作业做一个简单的API调用。 使用SoapUI,这是我在查看该工作时获得的SOAP代码:

<soapenv:Envelope xmlns:soapenv="http://schemas/xmlsoap.org/soap/envelope/" xmlns:tem="http://tempuri.org/">
  <soapenv:Header/>
  <soapenv:Body>
    <tem:JobAPI_CheckConnection/>
  </soapenv:Body>
</soapenv:Envelope>

那么,我该如何将其翻译成PHP? 从查看本教程:http://devzone.zend.com/2202/php-and-soap-first-steps/

我得到了一些,但不是全部...... 从我到目前为止收集的内容来看,我的PHP代码看起来应该与此类似:

<?php
$wsdl = "http://whateverservice.org/?wsdl";
$client = new SoapClient($wsdl);
$result = $client->JobAPI_CheckConnection();

echo $result->JobAPI_CheckConnectionResult;
?>

但是这没有返回任何内容,并且网站无法加载。换句话说,某些事情显然是错误的。在我到目前为止看到的教程中,你发送一个请求以及一个参数来获得响应,但是这个,你只需要调用那个工作,我有点期待得到的结果,但我没有线索如何...

任何一个人都愿意为我指出正确的教程或类似方法。或者,如果有人愿意直接给我答案,那很酷,我希望我可以从中学习。

旁注:我也不确定是否需要登录我正在连接的服务,但如果是这样,我老实说旁边没有任何线索如何...我假设它是一个添加到“newSoapClient”调用的数组或参数,但是我怎么也不知道......

感谢您照顾好noobie!

1 个答案:

答案 0 :(得分:0)

首先,您应该查看native PHP SoapClient class

然后,如果您喜欢使用PHP对象和结构化编程,我建议您使用WSDL到php生成器,以简化您创建请求和接收响应的方式。为此,请查看可在WsdlToPhp

在线使用的https://www.wsdltophp.com项目