是否可以使用python suds从文件系统中读取wsdl文件?

Thi*_*Lam 39 python soap wsdl suds

从suds 文档中,我可以创建一个Client如果我有一个WSDL的URL.

from suds.client import Client
url = 'http://localhost:7080/webservices/WebServiceTestBean?wsdl'
client = Client(url)
Run Code Online (Sandbox Code Playgroud)

我目前在我的文件系统上有WSDL文件.是否可以使用suds从我的文件系统读取WSDL文件而不是在Web服务器上托管它?

Gab*_*aru 56

试着用 url='file:///path/to/file'

  • 要添加Thierry的评论,它也必须是一条绝对的道路.(例如file:///home/admin/service.xml) (8认同)
  • 我不得不添加一个额外的斜线,谢谢你的回答. (5认同)

Jos*_*eak 16

Oneliner

# Python 3
import urllib, os 
url = urllib.parse.urljoin('file:', urllib.request.pathname2url(os.path.abspath("service.xml")))
Run Code Online (Sandbox Code Playgroud)

这是一个更完整的单线,将:

  • 让你只指定本地路径,
  • 给你绝对的道路,
  • 然后将其格式化为file-url.

根据:

  • 接受的答案中的评论和
  • /sf/answers/1000873331/
  • 并感谢用户Sebastian更新的Python 3实现,因为我们应该避免在此时编写遗留python.

原件供参考

# Python 2 (Legacy Python)
import urlparse, urllib, os

url = urlparse.urljoin('file:', urllib.pathname2url(os.path.abspath("service.xml")))
Run Code Online (Sandbox Code Playgroud)