Вызов ComplexType как функции в PySimpleSoap

Учитывая следующий PHP, который возвращает действительный ответ Soap / XML:

$params = new StdClass();
$params->subRequest = new StdClass();
$params->subRequest->endCSN = "0212341234";
$client = new SoapClient($WSDL);
$response = $client->qualifyProduct($params);

Я пытаюсь реализовать соединение с этим веб-сервисом в Python, но я не захожу слишком далеко — сталкиваюсь с ошибками (я пробовал в PHP просто для проверки работоспособности).

До сих пор я пробовал несколько возможных вариантов, которые, кажется, имеют смысл в моей голове, включая:

client = SoapClient(WSDL)
a = type('lambdaobject', (object,), {})()
a.endCSN = "0212341234"response = client.qualifyProduct(subRequest = a)`

response = client.qualifyProduct({'subRequest':{'endCSN':{'0212121212'}}})

response = client.qualifyProduct(subRequest = {'endCSN':{'0212121212'}})

Ничего из этого не работает — и все они дают мне ошибку PySimpleSoap, например:

ValueError: Invalid Args Structure. Errors: [u"Argument key subRequest not in parameter.

Ответ для PySimpleSoap: как передать complexType в качестве параметра функции казалось, предлагал проблеск надежды, но в итоге я не работал.

У меня есть другие функции, работающие с данным WSDL, но ни одна из них не имеет ComplexType для метода, определенного как этот фрагмент, где типы subRequest и anotherSubRequest определены в другом файле .xsd:

<xsd:complexType name="QualifyProductRequest">
<xsd:sequence>
<xsd:choice>
<xsd:element name="subRequest" type="wsg:subRequest">
<xsd:annotation>
<xsd:documentation xml:lang="en">A complex type capturing required data for a qualification</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="anotherSubRequest" type="wsg:anotherSubRequest">
<xsd:annotation>
<xsd:documentation xml:lang="en">A complex type capturing required data for a different qualification</xsd:documentation>
</xsd:annotation>
</xsd:element>
<! -- SNIPPED -->
</xsd:choice>
</xsd:sequence>
</xsd:complexType>

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]