ZeepのPythonクライアントでSOAP APIを認証できません。私は2つのURLを持っています:python zeepでwsdl(非wsdlモード)を使わずにsoap apiを呼び出す方法は?ユーザーとパスワードの認証でロケーションURLを呼び出す
1)http://credotrade.stg-tradingcrm.com:8093/mex
- これはwsdlサービスを指定します。利用可能なすべての操作を確認するには、Zeepコマンドpython -mzeep
で呼び出すことができます。
2)https://credotrade.stg-tradingcrm.com:8094/CrmServiceBasic
- これは、ログインとパスワードで保護されたAPIロケーションを提供する認証URLです。 $wsdl
が最初のURLでフォームSoapClient($wsdl, $location, $username, $password)
でSoapClient recievesパラメータ、$location
第二1、$username
と$password
ですが、私のユーザー名とパスワードであることを、私は考え出したこのAPIの使用可能な作業PHPクライアントを調べる
。私は新しいServiceProxyオブジェクトをctreateしようとした任意の成功がなければzeep.exceptions.Fault: An error occurred when verifying security for the message.
:私はWSDL URLを呼び出す場合、PHPのドキュメント以下
in non-WSDL mode, the location and uri options must be set, where location is the URL of the SOAP server to send the request to, and uri is the target namespace of the SOAP service
は、直接私は、セキュリティエラーが発生します。また、wsdl definitionのコードがapiの場所を指定したように見えるとすぐにZeep Client self.wsdl
の初期化を修正しようとしました。
non-wsdl soap apiをPythonで使用するにはどうすればいいですか? non-wsdl apiを呼び出すクライアントを記述するのにZeepを使用できますか?
更新: phpのマニュアルが誤解を招くようです。私は質問How to create client with specific endpoints?にpython-zeep githubを実行します。 location URLは、非wsdlモードとは関係のない認証URLに過ぎないことを意味します。
service = client.create_service(
'{http://my-target-namespace-here}myBinding',
'http://my-endpoint.com/acceptance/')
は、誰もがcreate_service
メソッドを介して真偽のURLを呼び出す方法を説明することができます:ZEEPの著者は、新しいServiceProxyオブジェクトを作成真偽のURLの問題を解決することが可能であることを示唆していますか?