gpt4 book ai didi

go - 在 Go 中发出 SOAP 请求

转载 作者:IT王子 更新时间:2023-10-29 01:41:41 24 4
gpt4 key购买 nike

我在 Stack Overflow 上看到了其他几个类似的问题,但它们相当陈旧/可能已经过时,所以我想知道是否有任何新的包或方法可以在 Go 中发出 SOAP 请求。谢谢!

最佳答案

我认为没有。

首先,有两个描述 soap 的文档——所谓的“SOAP Note”,它不是官方标准,但被广泛称为“SOAP 1.0”,另一个是 标准,通常称为 SOAP 1.1。尽管它们表面上看起来相同,但它们并不兼容。

另一方面,SOAP 本身——作为什么的 XML 编码客户端发送,服务器响应——很简单,实际上制作了一个简单的 SOAP 包装器(以进行客户端调用)和解包器(解封装服务器的响应)很简单。

我想强调一点:两个 SOAP 标准实际上并不处理作为 SOAP 的 HTTP 被明确定义为与传输无关(因此它遇到了与 ReST 范式相同的问题:每个人认为它是关于 HTTP 的),并且 Go 的标准库具有出色的特性支持 HTTP,因此 SOAP 编码/解码层看起来相当薄。

出于这些考虑,我个人甚至懒得开始在我需要的每种情况下,取决于 SOAP 的第 3 方包通过 SOAP 调用一些东西并自己编写必要的代码;我刚刚检查过我最后一次需要进行 SOAP 1.2 调用,SOAP 编码器/解码器最终为 171 行Go 代码(不包括测试)。

所以我会说自己动手吧。

请注意,只有当您的服务器不需要一些错误的使用——例如可怕的 WS-Security 扩展这需要发送特殊格式的 XML,计算加密哈希,对它们进行数字签名以及所有这些东西;到目前为止,在 Go 中还没有什么可以处理这个问题。

这同样适用于 WSDL 规范或 XSD 架构。IIUC,目前没有足够质量的工具可以生成为您提供 WSDL 的类型层次结构和 SOAP 端点客户端 stub 文档或 XSD 架构。

关于go - 在 Go 中发出 SOAP 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42430892/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com