Perl + SOAP :: Lite
问题描述:
这是我想用SOAP :: Lite建模的SOAP文档。Perl + SOAP :: Lite
<SOAP-ENV:Envelope xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<SOAP-ENV:Body>
<GetOrderByPartnerOrderID xmlns="http://api.geotrust.com/webtrust/query">
<Request>
<QueryRequestHeader>
<PartnerCode>partnercode</PartnerCode>
<AuthToken>
<UserName>username</UserName>
<Password>password</Password>
</AuthToken>
</QueryRequestHeader>
<PartnerOrderID>partnerid</PartnerOrderID>
</Request>
</GetOrderByPartnerOrderID>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
这是我用来模拟此文档的Perl代码。
my $params = SOAP::Data->name("Request" =>
\SOAP::Data->value => (
\SOAP::Data->name("QueryRequestHeader" =>
\SOAP::Data->value(
SOAP::Data->name("PartnerCode" => $partnercode),
SOAP::Data->name("AuthToken" =>
\SOAP::Data->value(
SOAP::Data->name("UserName" => $username),
SOAP::Data->name("Password" => $password)
)
)
)
),
\SOAP::Data->name("PartnerOrderID" => $poid)
);
但是,(我使用SOAP ::精简版与轨迹)这个代码生成的SOAP文档如下:
<SOAP-ENV:Envelope xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<SOAP-ENV:Body>
<GetOrderByPartnerOrderID xmlns="http://api.geotrust.com/webtrust/query">
<Request>
<QueryRequestHeader>
<PartnerCode>partnercode</PartnerCode>
<AuthToken>
<UserName>username</UserName>
<Password>password</Password>
</AuthToken>
</QueryRequestHeader>
</Request>
<Request>
<PartnerOrderID>partnerid</PartnerOrderID>
</Request>
</GetOrderByPartnerOrderID>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
出于某种原因,它会关闭请求标签,然后再打开它。它似乎应该是一个简单的解决方案,但我已经尝试了所有我能想到的并且无法解决的问题。任何帮助将不胜感激。
答
想通了。有\SOAP::Data->value => (
而不是\SOAP::Data->value(
。