WSDL 中的 SOAP 绑定和 HTTP 绑定之间的区别



我正在使用一个WSDL,它有两个端口 - 一个具有SOAP 绑定,另一个具有 HTTP 绑定。 据我所知,SOAP是一种消息传递协议,但仍然使用HTTP作为传输协议。那么使用这两个端口有什么区别呢?

包含绑定和服务 WSDL 的一部分:

<wsdl:binding name="OperationServiceNextGenHttpBinding" type="tns:OperationServiceNextGenPort">
<http:binding verb="POST"/>
<wsdl:operation name="operation">
<http:operation location="/operation"/>
<wsdl:input>
<mime:content type="application/x-www-form-urlencoded"/>

</wsdl:input>
<wsdl:output>
<mime:content type="text/xml"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:binding name="OperationServiceNextGenSOAPBinding" type="tns:OperationServiceNextGenPort">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="operation">
<soap:operation soapAction="http://some.schema.com/marketplace/search/v1/services/operation"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="OperationServiceNextGen">
<wsdl:documentation>
<version>1.1.10</version>
</wsdl:documentation>
<wsdl:port binding="tns:OperationServiceNextGenHttpBinding" name="OperationServiceNextGenHttpPort">
<http:address location="https://svcs.ebay.com/services/search/v1/OperationServiceNextGen"/>
</wsdl:port>
<wsdl:port binding="tns:OperationServiceNextGenSOAPBinding" name="OperationServiceNextGenSOAPPort">
<soap12:address location="https://svcs.ebay.com/services/search/v1/OperationServiceNextGen"/>
</wsdl:port>
</wsdl:service>

让我试着简短地解释一下。

一个具有 SOAP 绑定,另一个具有 HTTP 绑定

SOAP 绑定SOAP 绑定定义了 SOAP XML 格式,这意味着请求/响应 XML 必须是什么样子,以及它应该包含哪些 XML 节点/命名空间等?

HTTP绑定

这讨论了SOAP XML/消息应该如何传输,即在这种情况下是否通过HTTP/HTTPS。

据我所知,SOAP是一种消息传递协议,但仍然使用HTTP作为传输协议。那么使用这两个端口有什么区别呢?

大多数时候,传输协议是HTTP/HTTPS都是如此,但可能并不总是如此,SOAP可以通过SMTP或FTP进行传输。

查看有关 SMTP 上的 SOAP 的更多信息。 https://teaching.shu.ac.uk/aces/ict/de/web_services/soap_over_http.htm# https://www.tutorialspoint.com/wsdl/wsdl_binding.htm

最新更新