1

我对 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”。为什么会这样?这是我第一次看到这种奇怪的行为......

我正在使用带有 lighttpd 服务器的 PHP 5.3。

4

2 回答 2

1

您可以通过取消标记名为Send An Array As Parameter. 然后再次生成包,它会很好用。

于 2013-05-13T08:30:44.713 回答
0

我发现了问题...

在通话中:

self::getSoapClient ( )->deleteStreamEvent ( array ( 'streamId' => $_streamId, 'eventName' => $_eventName ) )

我必须将其更改为:

self::getSoapClient ( )->deleteStreamEvent ( $_streamId, $_eventName )

:DI希望这可以帮助其他人......

谢谢!

于 2013-01-31T16:11:51.077 回答