Документация SimpleDB включает этот пример запроса для метода ListDomains.
Обратите внимание, что есть подэлементы Signature, Timestamp, AWSAccessKeyId и Version:
<SOAP-ENV:Body>
<ListDomainsRequest xmlns=" http://sdb.amazonaws.com/doc/2007-11-07">
<Signature>SZf1CHmQnrZbsrC13hCZS061ywsEXAMPLE<</Signature>
<Timestamp>2009-02-16T17:39:51.000Z</Timestamp>
<AWSAccessKeyId>1D9FVRAYCP1VJS767E02EXAMPLE</AWSAccessKeyId>
<Version>2007-11-07</Version>
<Action>ListDomains</Action>
</ListDomainsRequest>
</SOAP-ENV:Body>
WSDL использует это определение для ListDomains:
<xs:element name="ListDomains">
<xs:complexType>
<xs:sequence>
<xs:element name="MaxNumberOfDomains" type="xs:int" minOccurs="0"/>
<xs:element name="NextToken" type="xs:string" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
...
<wsdl:operation name="ListDomains">
<soap:operation soapAction="ListDomains"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
Информация о подписи, метке времени, AWSAccessKeyId и версии отсутствует в определении ListDomains.
Служба поддержки AWS уже исследовала это и говорит, что это так:
"WSDL будет продолжать охватывать только
элементы уровня приложения, так как это
более чистый подход
долгосрочный «SOAP с WS-Security»
модель конверта / тела. "
Правильный ли пример запроса? Импорт WSDL, например, в Delphi, не генерирует код для элементов авторизации.