2017-05-09 12 views
1

私はzeepでpython soapクライアントを作成しようとしていますが、wsdlにアクセスしようとすると問題が発生します。私が試したウェブ上の既存のソリューションの数が何であっても、彼らのどれももう作業していない、あるいは私のケースがちょっと違います。最も有望な公式ZEEPドキュメント内の溶液であるが、それはまだかなりの仕事をしていません。ZeepのPython SOAPクライアント - パスワードで保護されたwsdlにアクセス

from requests import Session 
from requests.auth import HTTPBasicAuth # or HTTPDigestAuth, or OAuth1, etc. 
from zeep import Client 
from zeep.transports import Transport 

session = Session() 
session.auth = HTTPBasicAuth(user, password) 
client = Client('https://url/to/my_wsdl.wsdl', 
    transport=Transport(session=session)) 

しかし、私はエラーを取得する:

File "C:\Python36-32\lib\site-packages\zeep\client.py", line 124, in __init__ 
    self.wsdl = Document(wsdl, self.transport, strict=strict) 
    File "C:\Python36-32\lib\site-packages\zeep\wsdl\wsdl.py", line 82, in __init__ 
    root_definitions.resolve_imports() 
    File "C:\Python36-32\lib\site-packages\zeep\wsdl\wsdl.py", line 234, in resolve_imports 
    binding.resolve(self) 
    File "C:\Python36-32\lib\site-packages\zeep\wsdl\definitions.py", line 128, in resolve 
    operation.resolve(definitions) 
    File "C:\Python36-32\lib\site-packages\zeep\wsdl\bindings\soap.py", line 428, in resolve 
    self.output.resolve(definitions, self.abstract.output_message) 
    File "C:\Python36-32\lib\site-packages\zeep\wsdl\messages\soap.py", line 285, in resolve 
    self.body = self._resolve_body(info['body'], definitions, parts) 
    File "C:\Python36-32\lib\site-packages\zeep\wsdl\messages\soap.py", line 423, in _resolve_body 
    element = part.element.clone() 
AttributeError: 'NoneType' object has no attribute 'clone' 

何が足りないか、間違っているのでしょうか?私は、Windowsのpython3.6 32ビットを使用しています10.すべてのパッケージはpipを使って新しくインストールされました。

答えて

0

したがって、明らかにこの問題の解決策はありません。将来のZeepリリースでこのバグが修正される可能性があります。

しかし、私は回避策を見つけました。 Zeepの代わりにSUDS(またはpython3.xの場合はsuds-py3)を使用します。ユーザーとパスワードの要件を持つwsdlからクライアントを作成することは、ここでも簡単です。ちょうど使用:

from suds.client import Client 

client = Client(url=WSDL_URL, 
       username=WSDL_USERNAME, 
       password=WSDL_PASSWORD) 
1

ここではジープの著者です。あなたがZeepでバグを起こしたようです。 http://docs.python-zeep.org/en/master/reporting_bugs.htmlhttps://github.com/mvantellingen/python-zeep/issuesに記載されている問題を提出できますか?

私はそれをできるだけ早く見ていきます。

+0

https://github.com/mvantellingen/python-zeep/issues/437完了してください。手伝ってくれてありがとう! – Devlige

関連する問題