【问题标题】:Is the order of the parameters important in an ASPNET web service with a SOAP 1.0 XML request?在带有 SOAP 1.0 XML 请求的 ASPNET Web 服务中,参数的顺序是否重要?
【发布时间】:2025-12-13 15:15:01
【问题描述】:

当我们尝试使用 java 客户端 (Axis) 调用 Web 服务时,我们会以不同的顺序发送方法参数字段。

也就是说,如果参数的WSDL顺序是这样的;

<soap:Body>
    <somemethod>
      <messagetype>
        **<x>int</x>**
        <y>int</y>
      </messagetype>
    </somemethod>
</soap:Body>

如果我们像这样发送它们

<soap:Body>
    <somemethod>
      <messagetype>
        **<y>int</y>**
        <x>int</x>
      </messagetype>
    </somemethod>
</soap:Body>

参数不填写在 ASPNET 端。 “x”和“y”保持为零(“0”)。

如果这是标准,有什么想法吗?

【问题讨论】:

  • 虽然我绝对不是 Java 开发人员,但我似乎从几年前的 ASMX Web 服务工作中回忆起,参数的客户端编码需要与服务编码匹配。您是否为您的 Java 客户端设置了任何特定的编码?
  • 不,都是UTF-8,但是下单后就可以了。
  • 您是否拥有服务和/或源代码的控制权?
  • 如果我只有那个:)

标签: asp.net web-services asmx axis


【解决方案1】:

嗯,SOAP 请求只是 XML,所以我的想法是 SOAP 实现将决定参数应该如何匹配。

但这因供应商而异。一些供应商可能会通过元素名称(正确的方式)获取 SOAP 参数值,而其他供应商可能会通过节点位置(您可能遇到的)获取值。

坚持 WSDL 指定的格式,没有人会受到伤害。

【讨论】: