我对Akamai API有疑问。
我已经使用这个系统(http://www.wsdltophp.com/)将WSDL转换为PHP中的对象。我这样做是因为我手边有问题。但问题仍然存在:
WSDL服务的一个方法是deleteStreamEvent,它接收两个参数:streamId和eventName。所以电话是:
$soapClient->deleteStreamEvent(array ('streamId' => $id, 'eventName' => 'name'));
但问题是它将此XML发送到服务器:
<?xml version="1.0" encoding="UTF-8"?>
<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:ns1="https://control.akamai.com/ArchiveManagementService.xsd" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:enc="http://www.w3.org/2003/05/soap-encoding">
<env:Body>
<ns1:deleteStreamEvent env:encodingStyle="http://www.w3.org/2003/05/soap-encoding">
<streamId xsi:type="xsd:int">1</streamId>
<eventName xsi:nil="true"/>
</ns1:deleteStreamEvent>
</env:Body>
</env:Envelope>
所以,正如你所看到的那样,所有我发送的数字都改为“1”。为什么会这样?这是我第一次看到这种奇怪的行为......
我正在使用PHP 5.3和lighttpd服务器。
答案 0 :(得分:1)
您可以通过取消标记名为Send An Array As Parameter
的选项来全局解决此问题。然后再次生成包,它会很好用。
答案 1 :(得分:0)
我发现了问题...
在电话中:
self::getSoapClient ( )->deleteStreamEvent ( array ( 'streamId' => $_streamId, 'eventName' => $_eventName ) )
我要把它改成:
self::getSoapClient ( )->deleteStreamEvent ( $_streamId, $_eventName )
:D我希望这可以帮助其他人......
谢谢!