我有一个肥皂URL,在通过浏览器运行URL时,我会得到WSDL响应。但是当我尝试使用所需参数列表中的响应中调用方法时,正在显示" Arerr [149]必须在控制记录中提供用户名。
我搜索了此错误,并获取了这样的信息:" arcontrolstruct参数的名称字段是空的。在此字段中提供AR System用户的名称。"但是,我看不到如何提供用户名参数。
我得到了解决此问题的解决方案。我遵循的步骤解决了问题(我已经使用了" Zeep"第三方模块来解决此问题(:
- 运行以下命令以了解WSDL:
python -mzeep wsdl_url
-
搜索字符串"服务:"。在下面,我们可以看到我们的操作名称
-
对于我的操作,我在输入后发现了:
Myoperation(参数...,_soapheaders = {参数:ns0:AuthenticationInfo}(
清楚地传达了我必须使用kwargs" _ soapheaders"
传递参数和auth param以此,我知道我必须将我的身份验证元素作为_soapheaders参数传递给肌关言函数。
- 创建的auth元素:
auth_ele = client.get_element('ns0:authenticationinfo'(auth = auth_ele(用户名='me',password ='mypwd'(
- 将验证传递给了我的操作:
cleint.service.myoperation('parameters ..',_soapheaders = [auth](