PHP SOAP SoapClient参数

时间:2011-01-24 23:50:46

标签: php soap

我是SOAP的新手(通常是SOAP)。我遇到了SoapClient类的问题。它需要四个参数(请求,位置,操作,版本),但我真的不知道那些应该是什么,因为它们与我正在尝试使用的Web服务有关。

http://wiki.agemni.com/Getting_Started/APIs/Agemni_CMS_Synchttp://www.agemni.com/_anet/ADBAccess.asmx?op=getCMSTables

这是我最好的猜测:

$wsdl = 'http://www.agemni.com/_anet/ADBAccess.asmx?WSDL';

$action = 'http://webservice.agemni.com/getCMSTables';
$request = 'POST /_anet/ADBAccess.asmx HTTP/1.1
Host: www.agemni.com
Content-Type: text/xml; charset=utf-8
Content-Length: 10000
SOAPAction: "http://webservice.agemni.com/getCMSTables"

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <getCMSTables xmlns="http://webservice.agemni.com/getCMSTables" />
  </soap:Body>
</soap:Envelope>"
';
$location = 'http://www.agemni.com/_anet/ADBAccess.asmx';
$version ='1';


$client = new SoapClient($wsdl);
$response = $client->__doRequest($request, $location, $action, $version);

我不是要求任何人为我这样做,但如果你能帮助澄清$ action,$ request和$ location应该是(非常确定$ version只是一个int 1或2)我会非常感激。

1 个答案:

答案 0 :(得分:1)

好吧,如果您不想处理请求的详细信息并且您拥有WSDL文件,则无需设置这些参数。只是实例化WSDL文件的路径,它假设包含其他所有内容。你刚才打电话

$response = $client->getCMSTables();

请参阅:http://php.net/manual/en/soapclient.soapclient.php