Вопрос

В Документация SimpleDB включает в себя этот пример запроса для метода ListDomains.Обратите внимание, что существуют подэлементы Signature, Timestamp, AWSAccessKeyId и Version:

  <SOAP-ENV:Body>
    <ListDomainsRequest xmlns=" http://sdb.amazonaws.com/doc/2007-11-07">
      <Signature>SZf1CHmQnrZbsrC13hCZS061ywsEXAMPLE&lt;</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, не генерирует код для элементов авторизации.

Это было полезно?

Решение

Что ж, похоже, что элементы авторизации действительно не являются частью WSDL, что немного странно....

Еще смешнее - в документах Amazon говорится о предоставлении этой информации в заголовке SOAP - тем не менее, их образец четко помещает ее в <SOAP-ENV:Body> элемент....

Что произойдет, если вы вручную добавите эти дополнительные элементы либо в код Delphi, либо в сам WSDL?Можете ли вы настроить его таким образом, чтобы сервис SimpleDB был доволен им?

Марк

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top