我是SOAP的新手(通常是SOAP)。我遇到了SoapClient类的问题。它需要四个参数(请求,位置,操作,版本),但我真的不知道那些应该是什么,因为它们与我正在尝试使用的Web服务有关。
见
http://wiki.agemni.com/Getting_Started/APIs/Agemni_CMS_Sync 和 http://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)我会非常感激。
答案 0 :(得分:1)
好吧,如果您不想处理请求的详细信息并且您拥有WSDL文件,则无需设置这些参数。只是实例化WSDL文件的路径,它假设包含其他所有内容。你刚才打电话
$response = $client->getCMSTables();