0

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 将继续只涵盖应用程序级元素,因为它是一种更简洁的方法,更适合长期的“带有 WS-Security 的 SOAP”信封/主体模型。”

示例请求是否正确?例如,在 Delphi 中导入 WSDL 不会为授权元素生成代码。

4

1 回答 1

0

好吧,看起来授权元素确实不是 WSDL 的一部分,这有点奇怪......

更有趣的是——亚马逊文档谈到在 SOAP 标头中提供该信息——然而,他们的示例清楚地把它放在了<SOAP-ENV:Body>元素中......

如果您在 Delphi 代码或 WSDL 本身中手动添加这些附加元素,会发生什么情况?您能否对其进行调整以使 SimpleDB 服务对此感到满意?

马克

于 2009-05-09T08:33:48.087 回答