使用SUDS SOAP客户端如何指定Web服务URL。我可以清楚地看到WSDL路径是在客户端构造函数中指定的,但是如果我不想更改Web服务URL?更改SUDS库中的Web服务URL
回答
肥皂水支持WSDL with multiple services or multiple ports(或两者),而不必在你使用,我只是猜测这是你在找什么工作什么的任何详细信息。如果你提供了更多的细节,比如你的Client
实例,这个问题会更容易回答。
成功构建Client
后,您可以通过print
查看可用的服务,方法,端口和类型。
以下示例直接来自泡沫文档。从泡沫现场
实施例:
from suds.client import Client
url = 'http://www.thomas-bayer.com/axis2/services/BLZService?wsdl'
client = Client(url)
print client
输出此:
Suds - version: 0.3.7 build: (beta) R550-20090820
Service (BLZService) tns="http://thomas-bayer.com/blz/"
Prefixes (1)
ns0 = "http://thomas-bayer.com/blz/"
Ports (2):
(soap)
Methods (1):
getBank(xs:string blz,)
(soap12)
Methods (1):
getBank(xs:string blz,)
Types (5):
getBankType
getBankResponseType
getBankType
getBankResponseType
detailsType
Service (OtherBLZService) tns="http://thomas-bayer.com/blz/"
Prefixes (1)
ns0 = "http://thomas-bayer.com/blz/"
Ports (2):
(soap)
Methods (1):
getBank(xs:string blz,)
(soap12)
Methods (1):
getBank(xs:string blz,)
Types (5):
getBankType
getBankResponseType
getBankType
getBankResponseType
detailsType
每个服务可以以多种方式来访问,但这里是从由方法限定的每个服务一个不同的端口:
## service: BLZService, port: soap12, method: getBank
client.service['BLZService']['soap12'].getBank()
## service: OtherBLZService, port: soap, method: getBank
client.service['OtherBLZService']['soap'].getBank()
这是你正在使用的那种东西吗?如果是这样,请访问他们的文档,我认为您会发现这些文档绰绰有余。如果没有,请考虑为您的问题添加尽可能多的细节,以便我们提供更多的帮助!
我认为你必须为每个不同的URL创建一个新的Client对象。
但我将WSDL URL传递给客户端构造函数。如果WSDL和服务具有不同的URL会怎么样? – 2009-11-04 20:01:57
WSDL应该包含服务URL的所有细节。您只需要每个wsdl一个客户端对象,并且您不需要担心服务url(作为客户端) – robince 2009-11-04 20:29:49
您可以通过两种方法指向客户端不同的端点:
1)client.set_options(位置= 'http://path/to/your/wsdl')使用客户端的clone()方法 - 或 - 2)。然后再次使用set_options()。它和上面的#1一样,但最终有两个客户使用,而不是一个。
后一种方法是创建客户端对象的轻量级克隆的一种干净方式 - 它们将共享解析的wsdl,并且只会在您通过set_options()设置的选项上有所不同。
我使用这两种方法,他们都工作得很好。
-Matt
- 1. 在App.Config中更改Web服务URL
- 2. 如何更改存储在类库中的Web服务的URL?
- 3. 更改Axis Web服务的URL
- 4. 如何更改Web服务URL动态
- 5. 无法识别Web服务URL更改
- 6. 在运行时更改Web服务URL
- 7. 如何使用ATL库在运行时更改Web服务URL?
- 8. 从Apache Web服务器中的URL更改主机名
- 9. Sharepoint 2007:如何更改自定义Web部件Web服务URL?
- 10. AXIS Web服务中的URL
- 11. 更改JAX-WS服务URL
- 12. 如何更改SoapUI中的服务URL
- 13. 如何更改我的Web服务的URL?
- 14. 无法将.NET引用的URL更改为动态Web服务
- 15. 更改Web服务URL(保持WSDL)所有的
- 16. 在Web服务中更改终点
- 17. 在Python中更改服务URL Zeep
- 18. SOAP Web服务URL
- 19. 代理后面的SOAP web服务,使用python-suds访问
- 20. 更改Apache Web服务器的端口
- 21. 更改TeamCity web服务器的端口
- 22. 如何动态或轻松地更改Web服务URL?
- 23. 如何更改Web服务URL而无需重新编译?
- 24. 更改服务器端的url
- 25. 更改给定服务的URL
- 26. 如何更改WCF服务的URL?
- 27. 如何将web服务的url从localhost更改为www(word wide web)
- 28. 更改服务器IP中断web服务器
- 29. 如何找出或更改Git仓库服务器的URL
- 30. 如何使用Python/SUDS将键/值对发送到Web服务?
实际上,我所要求的是如何在运行时修改端点(端口)地址。你的回答提醒我这个配置可以在服务描述中。它实际上在那里。 client.service ['BLZService']。setlocation() – 2010-01-21 11:50:01
太棒了,我很开心能够帮助你。恭喜! :) – jathanism 2010-01-21 15:26:08
使用泡沫0.4这是client.wsdl.services [0] .setlocation(new_url) – 2012-09-25 00:00:11