客户端 SOAP 请求是否只是使用 HTTP POST 通过 TCP/IP 套接字连接向 Web 服务服务器发送格式正确的 HTTP 标头,然后是正确格式的 XML SOAP 内容,然后等待并解析响应?
这是“简单”还是幕后发生的事情更多?
我之所以问,是因为难以将 gSOAP 和 C++ 用于多个 WSDL 文件,并且正在考虑从头开始编写客户端。
SOAP 可用于任何传输协议,如 TCP、HTTP、SMTP 等,其中 HTTP 是最流行的。
HTTP 上的 SOAP 基本上转换为一个有效的 POST HTTP 请求,其中包含一个 SOAP 信封,如果我们要谈论来自浏览器的经典 POST,表单参数将在那里。响应正文还包含一个 SOAP 信封,在那里您希望 HTML 作为对来自浏览器的请求的响应。
您只需要为正在使用的 SOAP 版本(text/xml
对于 SOAP 1.1 和application/soap+xml
SOAP 1.2)使用正确的内容类型,并且如果需要(对于 SOAP 1.1)可能指定SOAPAction
标头,但这就是关于 HTTP 通信的问题。
然后信封的接收者(无论是请求的服务器还是响应的客户端)必须使用 SOAP 消息,但这与 HTTP 无关,HTTP 只是在那里获取消息。