我使用SOAP :: Lite与“SOAP”-Service-WSDL(ASMX响应)进行通信。 此服务需要的参数数组,像这样:SOAP :: Lite在复杂类型“Array”上生成“溢出”
<scriptParameters>
<string>string</string>
<string2>string2</string2>
</scriptParameters>
在Perl我使用下面的代码:
my @args;
my @params;
foreach (keys %{$self->{args}}) {
push(@params, SOAP::Data->name($_ => $self->{args}->{$_})->type(""));
}
push(@data, SOAP::Data->name("scriptParameters" => SOAP::Data->value(\@params)->type(""))->type(""));
但是,这将创建下列XML:
<scriptParameters soapenc:arrayType="xsd:anyType[11]" xsi:type="namesp20">
<job_id xsi:type="xsd:int">18381</job_id>
<dump xsi:type="xsd:int">0</dump>
</scriptParameters
注意soapenc:arrayType ... -stuff在scriptParameters-Element中。
现在的问题是,ASMX服务不能识别scriptParameters数组(我认为是因为soapenc东西(不幸的是这不是可调试的)。有没有人有一个想法,我可以摆脱额外的数据?
谢谢:)