在Go中发出SOAP请求

在Go中发出SOAP请求,go,Go,我已经看到了其他几个关于堆栈溢出的类似问题,但它们已经相当陈旧/可能已经过时,所以我想知道是否有新的包或方法用于在Go中发出SOAP请求。谢谢 我想没有 首先,有两个文档描述了soap,即所谓的“soap注释”,它正式不是一个标准,但被广泛称为“soap 1.0”,还有一个文档是标准,通常被称为soap 1.1。即使表面上看起来相同,它们也不兼容 另一方面,SOAP本身作为XML编码是什么 客户端发送,服务器响应很简单, 事实上,制作一个简单的SOAP包装器(用于进行客户端调用)和 解封器(用来

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

我想没有

首先,有两个文档描述了soap,即所谓的“soap注释”,它正式不是一个标准,但被广泛称为“soap 1.0”,还有一个文档是标准,通常被称为soap 1.1。即使表面上看起来相同,它们也不兼容

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

我想强调这一点:两种SOAP标准实际上都不处理 HTTP作为SOAP被明确定义为传输无关 (因此,它面临着与ReST范式相同的问题:每个人 认为它是关于HTTP的),Go的标准库功能非常出色 对HTTP的支持,因此SOAP编码/解码层看起来相当简单 瘦

考虑到这些因素,我个人甚至懒得动手 在我需要的每种情况下,都取决于SOAP的第三方包 通过SOAP调用一些东西,自己编写必要的代码; 我刚刚检查过我最后一次需要的时候 要执行SOAP 1.2调用,SOAP编码器/解码器最终是171行 Go代码(不包括测试)

所以我想说你自己滚吧

但请注意,只有当服务器不需要时,它才这么简单 使用某些错误,例如可怕的WS-Security扩展 需要发送特殊格式的XML, 计算加密散列,对其进行数字签名 诸如此类的东西;到目前为止,在围棋中还没有什么可以处理的

这同样适用于WSDL规范或XSD模式。 IIUC,目前没有足够质量的工具能够产生 给定WSDL的类型层次结构和SOAP端点客户端存根 文档或XSD模式