2010-10-28 54 views
35

Từ suds documentation, tôi có thể tạo Client nếu tôi có url cho WSDL.Có thể sử dụng các lệnh python để đọc tệp wsdl từ hệ thống tệp không?

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

Tôi hiện đang có tệp WSDL trên hệ thống tệp của mình. Có thể sử dụng suds để đọc tệp WSDL từ hệ thống tệp của tôi thay vì lưu trữ nó trên máy chủ web không?

Trả lời

48

cố gắng sử dụng url='file:///path/to/file'

+0

Đây là câu trả lời đúng. – jathanism

+5

Tôi phải thêm một dấu gạch chéo, nhờ câu trả lời. –

+8

Để thêm vào nhận xét của Thierry, nó cũng phải là một con đường tuyệt đối. (ví dụ: file: ///home/admin/service.xml) – trinth

12

Dựa trên những nhận xét trong câu trả lời chấp nhận và câu trả lời sau đây: https://stackoverflow.com/a/14298190/622276

# Python 2 
import urlparse, urllib, os 

url = urlparse.urljoin('file:', urllib.pathname2url(os.path.abspath("service.xml"))) 

Đây là một hoàn chỉnh hơn một liner rằng sẽ:

  • cho phép bạn chỉ định đường dẫn cục bộ,
  • giúp bạn có được đường dẫn tuyệt đối,
  • rồi định dạng tệp dưới dạng url tệp.

Edit: 2017/07/03 Nhờ sử dụng Sebastian các cập nhật Python 3 thực hiện cho bất cứ ai tìm thấy mã trên ngày.

# Python 3 
import urllib, os 
url = urllib.parse.urljoin('file:', urllib.request.pathname2url(os.path.abspath("service.xml"))) 
+1

Trong trường hợp ai đó đang sử dụng python3, tên đã thay đổi: 'nhập urllib, os' ' url = urllib.parse.urljoin ('file:' , urllib.request.pathname2url (os.path.abspath ("service.xml"))) ' – Sebastian

Các vấn đề liên quan