问题标签 [soap]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 如何在非 Java 客户端上解释引用命名空间 java: 的 WSDL?
我正在尝试集成在 Apache Axis 上运行的 SOAP Web 服务。WSDL 使用 URI 指定名称空间,如下所示:
在客户端,我使用的是 PHP,所以命名空间xmlns:stns
没有意义。我有一些 Java 类文件(及其源代码),似乎对应于这个命名空间。我如何以有意义的方式处理这个问题?
.net - 如何防止 DateTime 在 SOAP xsd:dateTime 元素中包含区域偏移量?
我在一些 WSDL 中有这个:
这会在 SOAP 信封中产生以下文本:
只有一些时间有毫秒和区域偏移。这让我很头疼,因为在这个例子中我试图获得 37 分 54 秒的范围,但是由于偏移量,我最终得到了 4 小时 37 分 54.65625 秒。这是 DateTime 中的某种舍入错误吗?我该如何防止这种情况发生?
asp.net - 在经典 ASP 中利用 SOAP
澄清:这不是关于用户代理对页面的调用,而是经典 ASP 调用 ASP.NET!
我的应用程序正在从经典 ASP 过渡到 ASP.NET。有 50 万行代码,因此一次完全重写所有内容根本不合理,或者坦率地说,考虑到绝大多数经典 ASP 页面都可以正常工作,这是不明智的。我们翻译页面和功能,因为它们无论如何都要进行修订,而不仅仅是因为它“酷”。
现在已经转换了大约一半的页面,我们将一些关键功能转移到了 ASP.NET。我没有保留此功能的旧版本(这意味着要维护两个地方而不是一个),而是转向使用 SOAP 来公开此功能。
嗯...不是真的。相反,我们一直在使用我以前称之为“Poor Man's SOAP”的东西,尽管今天称它为 REST 很流行。我一直在使用 ServerXMLHTTP 联系目标页面,将一团 XML 捆绑起来并将其发布到 ASP.NET 端。对于结果,我一直在捆绑一些 XML 并使用 XPATH 将其分解为变量。
所有这些都出奇地好。但是,我一直在考虑内置的 ASP.NET SOAP 功能,这似乎消除了为我的跨平台调用自定义编写登录页面的需要......但是当我查看从 Classic ASP 消费 SOAP 时,大多数建议使用看似贬值的肥皂工具包。
问题是; 你们中有人有这种设置的经验吗?如果有,有没有比自定义 REST 页面或 Soap Toolkit 更好的方法?我认为能够更快地公开更多 ASP.NET 功能将有助于迁移,但我不想让自己陷入不必要的 Soap Toolkit 等遗留技术。
c++ - 选择一个 SOAP 库来与 ISAPI webapp 集成
我工作的公司有一个用 C++ 编写的大型 web 应用程序作为 ISAPI 扩展(不是过滤器)。我们目前正在增强我们的系统,以便与几个具有 SOAP 接口的第三方工具集成。与其自己动手,我认为最好使用一些 SOAP 库。理想情况下,它将是免费和开源的,但具有与闭源商业软件兼容的许可证。我们还需要为传入和传出的 SOAP 消息支持 SSL。
我最担心的一个问题是,我看过的每个 SOAP 库似乎都有两种操作模式:独立服务器和服务器模块(Apache 模块或 ISAPI 过滤器)。显然,我们不能使用独立服务器。在我看来,如果它作为一个模块运行,它就不会成为我应用程序的一部分——它无法访问我的其余代码,因此它无法共享数据结构等. 这是一个正确的假设吗?我们的应用程序处理的每个 HTTP 请求都由一个单独的线程处理(我们管理自己的线程池),但我们有许多在这些线程之间共享的持久数据。我认为我正在寻找的集成类型是将一些代码添加到我的应用程序中,该代码查看请求 URL,发现它正在尝试访问 SOAP 服务,并调用诸如soapService 之类的函数。处理请求()。我不知道有什么东西可以提供这种集成。我们必须能够在 SOAP 处理函数中使用来自主应用程序的数据结构。
除了处理传入的 SOAP 请求,我们还将生成它们(与第 3 方的双向通信)。我认为几乎任何 SOAP 库都可以实现这个目的,对吧?
任何人都可以建议一个能够做到这一点的 SOAP 库,或者就如何使用不同的范例提供建议吗?我已经研究过 Apache Axis2、gSOAP 和 AlchemySOAP,但也许其中有一些我忽略了的特性。谢谢。
c# - 如何访问 SOAP 响应
(如果这里有什么需要澄清/更多细节,请告诉我。)
我有一个使用 SOAP 与第三方 Web 服务交互的应用程序(C#,2.* 框架)。我针对提供的 WSDL 使用 thinktecture 的 WSCF 插件来创建客户端实现。由于我无法控制的原因,SOAP 消息交换使用 WSE2.0 来保证安全性(必须修改 Thinctecture 实现以包含 WSE2.0 参考)。除了“普通”数据包之外,我还附加了一个存储的 X509 证书和一个来自先前调用不同 Web 服务的二进制安全令牌。我们正在使用某种 SSL 加密——我不知道细节。
所有必要的序列化/反序列化都包含在 Web 服务客户端中——这意味着在调用客户端后将控制权返回给我时,我无法使用 SOAP 响应中包含的整个 XML 字符串——只有反序列化的组件。不要误会我的意思——我认为这很好,因为这意味着我不必自己做。
但是,为了让我有一些值得存储/存档的东西,我必须在根元素处重新序列化数据。这似乎是一种资源浪费,因为我的结果是在 SOAP 响应中。
现在我的问题是:我如何才能访问 SOAP 响应的“清晰”版本,这样我就不必重新序列化所有内容以进行存储/归档?
编辑 - 我的应用程序是作为网络服务运行的“无格式”Windows 应用程序 - 由 WebsphereMQ 客户端触发器监视器触发。我认为ASP.NET 解决方案不会适用。
编辑 - 由于到目前为止的共识是我的应用程序是否是 ASP.NET 并不重要,所以我会给 CodeMelt(以及扩展 Chris 的)解决方案一个机会。
c++ - 从 ATL C++ 客户端调用 Axis2 Web 服务
我在 Tomcat5.5 上使用 Axis2 发布了一个简单的 POJO Web 服务,我尝试使用 ATL C++ 客户端使用它,但它失败了。对 C# 客户端执行相同的操作。问题是 ATL 客户端发送的肥皂体看起来像
注意中间的无效元素。我怀疑它与 UTF-8 有关,因为 C# 发送的标头
而 ATL 客户端则没有。此外,当我查看一些 ATL SOAP 内部时,我注意到一个结构有两个成员:szName 和 szwName。第一个是空的并产生元素,第二个有一个有效的(?)名称 testResponse(我调用的方法称为“test”)。
需要关于从这里去哪里的建议?
更多详细信息:来自 ATL 客户端的完整消息:
来自 Axis2 的响应:
哦,这是来自 C# 客户端的好请求:
在 C# 的情况下,soap:body 是空白的。
http - 使用 HTTP POST 时在 URL 中传递参数
使用 POST 方法时,是否允许通过 URL(问号后)向网页传递参数?我知道它可以工作(大多数时候,无论如何),因为我公司的 webapp 经常这样做,但我不知道它是否在标准中得到实际支持,或者我是否可以依赖这种行为。我正在考虑实现一个 SOAP 请求处理程序,它在问号后使用一个参数来指示它是一个 SOAP 请求而不是一个普通的 HTTP 请求。这样做的原因是 webapp 是一个 IIS 扩展,所以一切都通过相同的 URL 访问(例如:example.com/myisapi.dll?command),所以要处理 SOAP 请求,我需要指定“命令”参数。SOAP 会有一个通用命令,
基本上,我试图将 Apache Axis2/C 库集成到我的 webapp 中,方法是让 webapp 处理 HTTP 请求,然后将传入的 SOAP XML 传递给 Axis2 以进行处理(如果它是 SOAP 请求)。直观地说,我看不出有任何原因为什么这不起作用,因为您发布的 URL 只是一个任意 URL,就所有各种组件而言......它是赋予特殊含义的服务器问号后面的部分。
感谢您提供的任何帮助/见解。
javascript - SOAP - 谷歌地图和 Javascript - 连接到网络服务
我需要使用 javascript 连接到 asmx 网络服务。网络服务接受并返回一个肥皂响应。我正在寻找如何使用 javascript 连接到 web 服务的示例代码。它返回经纬度详细信息,然后我将使用这些详细信息在谷歌地图上绘制标记。我也有跨域脚本的问题...
我应该提供肥皂反应的例子吗?
谢谢。
python - 使用 Python 和 SOAPpy 生成 WSDL
首先,我承认我是 Web 服务的新手,虽然我熟悉 HTML 和基本的 Web 内容。我使用 Python 创建了一个快速而简单的 Web 服务,它调用 MySQL 数据库中的存储过程,它只返回一个 BIGINT 值。我想在 Web 服务中返回这个值,并且我想生成一个可以提供给我们的 Web 开发人员的 WSDL。我可能会补充一点,存储过程只返回一个值。
这是一些示例代码:
我想生成一个可以提供给网络人员的 WSDL,我想知道是否可以让 SOAPpy 为我生成一个。这可能吗?
.net - WCF over HTTPS 与 PHP 引发“方法不允许”异常
我创建了一个旨在始终通过 HTTPS 的 .NET WCF 服务。当我第一次创建服务框架并通过 HTTP 运行它时,它运行良好。我使用 PHP5 来测试与内置 SOAP 函数的互操作性。但是,一旦我切换到 HTTPS,当我尝试从 PHP 调用该函数时,我会收到错误消息“方法不允许”和错误代码“http”。它确实允许我检索方法列表。当它调用方法“Test”时会发生错误。
这是 WCF 配置:
PHP 是这样称呼它的:
我正在使用自签名 SSL 证书进行测试,我不相信 PHP 需要受信任的证书。
我究竟做错了什么?