Я не могу сосредоточиться на том, чтобы ссылаться на простой метод стороннего обслуживания. Вот фрагмент WSDL для этого метода:
<s:element name="PushRequest">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="LocationCode" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="PushRequestXml" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="PassPhrase" type="s:string"/>
</s:sequence>
</s:complexType>
</s:element>
Это пример запроса SOAP 1.1, сгенерированного веб-сервисом:
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<PushRequest xmlns="http://xxxx.yyyy.com/">
<LocationCode>string</LocationCode>
<PushRequestXml>string</PushRequestXml>
<PassPhrase>string</PassPhrase>
</PushRequest>
</soap:Body>
</soap:Envelope>
Сначала я подумал, что это один аргумент сложного типа, поэтому я попробовал это:
ws = CreateObject("webservice", serviceURL);
push = {};
push["LocationCode"] = "xxx";
push["PushRequestXml"] = "yyy";
push["PassPhrase"] = "zzz";
responseXML = ws.PushRequest(push);
Но получил обычный ответ CF Web service operation PushRequest with parameters {{PushRequestXml={yyy},LocationCode={xxx},PassPhrase={zzz}}} cannot be found.
.
Затем я подумал, что, возможно, это не сложный аргумент (по крайней мере, он не имеет атрибута name
в XML), а три разных аргумента:
ws = CreateObject("webservice", serviceURL);
responseXML = ws.PushRequest(LocationCode = "xxx", PushRequestXml = "yyy", PassPhrase = "zzz");
Результат тот же: Web service operation PushRequest with parameters {PushRequestXml={{PushRequestXml, yyy}},LocationCode={{LocationCode, xxx}},PassPhrase={{PassPhrase, zzz}}} cannot be found.
Есть идеи, как с этим обращаться? Скажите, пожалуйста, нужна ли дополнительная информация.
Я использую ACF9, веб-сервис предоставлен ASP.net
Спасибо.