【问题标题】:Why is the SOAP envelope such a mystery?为什么 SOAP 信封如此神秘?
【发布时间】:2014-10-29 09:42:32
【问题描述】:

网络上有很多示例描述了 SOAP 信封的外观。 W3Schools 有这个例子:

<?xml version="1.0"?>
<soap:Envelope
xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">

<soap:Body>
  <m:GetPrice xmlns:m="http://www.w3schools.com/prices">
    <m:Item>Apples</m:Item>
  </m:GetPrice>
</soap:Body>

</soap:Envelope>

但是我从哪里知道我必须使用“GetPrice”和“Item”(在本例中)?这些数据在哪里定义?它是我(作为客户端开发人员)可以查看的 WSDL 文件吗?

我真的很想有一个 SOAP 请求和响应的工作示例,因为我迄今为止(在网络和 StackOverflow 上)发现的所有内容要么已被贬低因此无法使用,要么带有类似这样的示例代码。

问候, 杰森

【问题讨论】:

    标签: xml web-services post soap wsdl


    【解决方案1】:

    这里的网络服务做得很好: http://www.w3schools.com/webservices/tempconvert.asmx

    您可以转到服务定义并查看 WSDL,其中定义了服务操作和数据合同。

    您还可以转到不同的操作并查看示例请求/自己调用服务。

    【讨论】:

    • 嗯,非常感谢您!我想这就是我要找的。仍然我似乎在用 JavaScript 做这些事情时遇到了麻烦,因为 CORS 似乎存在问题,而且 StackOverflow 上的答案并没有真正有帮助,因为他们只提到要做什么,但现在该怎么做......
    • 一般来说,您不能在 Javascript 中从客户端调用 Web 服务。当然,除非该 Web 服务托管在与您提供网站服务的域相同的域中。
    • 相反,您应该将命令传递给您的服务器并从那里调用 Web 服务,然后将结果传递回您的客户端。一般来说,这应该足够了,但如果你真的需要,有一些方法可以解决 CORS(你可以在此处的其他问题中找到更多信息)。
    • 我确实找到了解决 CORS 问题的方法的答案,但没有一个给出实际示例。就像我写的那样,他们都说明了什么,但没有说明如何。 “JS本地人”可能很清楚,但对于像我这样半年前才开始学习JS的人来说,它仍然是非常新的东西。例如,如果服务器对 POST 有一个 OPTIONS 响应,则答案是发送一个 OPTION 请求,等待服务器回答然后发送 POST。但它实际上是什么样子,不知道:stackoverflow.com/questions/5417014/…
    猜你喜欢
    • 1970-01-01
    • 2013-11-24
    • 1970-01-01
    • 2011-11-25
    • 1970-01-01
    • 2010-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多