Spyne 似乎根据服务的访问方式设置了 WSDL 定义中的端口。例如,如果我首先(即重新启动后)访问http://domain.com/soap-api/上的服务,它将将该 URL 嵌入到 WSDL 中。但是,如果我使用https://www.domain.com/soap-api/,它将使用该 URL。下面是我的 WSDL 的一部分:
<wsdl:service name="QuestService">
<wsdl:port name="Application" binding="tns:Application">
<soap:address location="https://app.stage.domain.com/soap-api/quest/"/>
</wsdl:port>
</wsdl:service>
<wsdl:portType name="Application">
<wsdl:operation name="ReceiveLabReqStatus" parameterOrder="ReceiveLabReqStatus">
...
当我使用 suds 访问服务器时,suds 似乎并不关心定义中的哪个 URL 以及我提供给 suds 的哪个 URL。但是,其他客户端似乎确实在乎,如果他们没有使用正确的 URL,当 URL 不匹配时会抛出错误(至少我认为这是正在发生的事情)。
所以,我的问题是:在 Spyne 中有没有办法明确设置与服务关联的 URL?