使用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