gpt4 book ai didi

python - 如何在 Spyne 中设置端口的名称和绑定(bind)?

转载 作者:太空宇宙 更新时间:2023-11-03 14:58:28 26 4
gpt4 key购买 nike

我通过 Django 编写了一个 Spyne Web 服务。我正在模拟一些应用程序,所以我需要实现精确的接口(interface)。我在原始应用程序中有以下 port 定义:

< wsdl:service name = "SendSmsWebServiceImplService" >
< wsdl:port binding = "tns:SendSmsWebServiceImplServiceSoapBinding" name = "SendSmsWebServiceImplPort" >
< soap:address location = "http://192.168.100.31:8181/smsgateway/sendsms" / >
< / wsdl:port >
< / wsdl:service >

这就是我在模拟器中的内容:

< wsdl:service name = "SendSmsWebServiceImplService" >
< wsdl:port name = "SendSmsWebService" binding = "tns:SendSmsWebService" >
< soap:address location = "http://127.0.0.1:5000/smsgateway/services/SendSms/" / >
< / wsdl:port >
< / wsdl:service >

我正在尝试为端口设置名称绑定(bind)。我正在使用模块 spyne.application.Application 来实现主应用程序。如何设置这些属性?

最佳答案

要更改端口和绑定(bind)的名称,您可以设置 Application 类的“name”属性,如下所示:

   app = Application(services=[YourService],
name='serviceName',
tns='your.tns',
in_protocol=Soap11(validator='lxml'),
out_protocol=Soap11()
)

但请注意,如果您在“服务”参数中公开了多个服务,spyne 将为它们分配相同的端口/绑定(bind)名称。如果您尝试使用 axis 使用服务,这可能会导致问题。

如果您遇到这种情况,您可能需要更多的spyne.application.Application 类实例。

还有另一种方法可以重命名这些属性。您只需将 wsdl 保存为 xml 文件,重命名所需的所有属性,然后在 Web 服务器上发布 xml 来代替生成的 wsdl。将此 xml 文件(带有完整的 url)提供给您的 Web 服务客户端应该可以正常工作。

希望有帮助。

关于python - 如何在 Spyne 中设置端口的名称和绑定(bind)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45325473/

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