这是它应该是什么样子
<soapenv:header> <something:myVar1>FOO</something:myVar1> <something:myVar2>JAM</something:myVar2> </soapenv:header>
我想我成功地以这种方式发送标题
header = xsd.Element( '{http://urlofthews}header',xsd.ComplexType([ xsd.Element( '{http://urlofthews}myVar1',xsd.String()),xsd.Element( '{http://urlofthews}myVar2',xsd.String()) ]) )header_value = header(myVar1='FOO',myVar2='JAM')print (header_value)datasoap=clIEnt.service.UserRessourcesCatalog(requete,_soapheaders=[header_value])
但我不知道如何使用XSD在我的header中声明并传递命名空间“something”.
任何帮助?
先谢谢.
最好的祝福
正如文档中提到的那样
http://docs.python-zeep.org/en/master/headers.html
“另一种选择是传递一个lxml的Element对象.如果wsdl没有定义一个soap标头但服务器确实需要它,这通常很有用.”
这是我的情况,所以我试过
try: import xml.etree.cElementTree as ET except importError: import xml.etree.ElementTree as ET ET.register_namespace('something','http://urlofthews') headerXML = ET.Element("soapenv:header") var1 = ET.SubElement(headerXML,"something:myVar1") var1.text = "FOO" var2 = ET.SubElement(headerXML,"something:myVar2") var2.text = "JAM"headerDict=xmltodict.parse(ET.tostring(headerXML))print (Json.dumps(headerDict)) datasoap=clIEnt.service.UserRessourcesCatalog(requete,_soapheaders=headerDict)
但我得到:ComplexType()得到了一个意外的关键字参数u’soapenv:header’.签名:“
解决方法 我最近遇到了这个问题,这就是我解决它的方法.假设您有一个“安全”标题,如下所示……
<env:header><Security> <UsernameToken> <Username>__USERname__</Username> <Password>__PWD__</Password> </UsernameToken> <ServiceAccesstoken> <AccesslicenseNumber>__KEY__</AccesslicenseNumber> </ServiceAccesstoken></Security></env:header>
要在zeep客户端的请求中发送此标头,您需要执行以下 *** 作:
header = zeep.xsd.Element( 'Security',zeep.xsd.ComplexType([ zeep.xsd.Element( 'UsernameToken',zeep.xsd.ComplexType([ zeep.xsd.Element('Username',zeep.xsd.String()),zeep.xsd.Element('Password',]) ),zeep.xsd.Element( 'ServiceAccesstoken',zeep.xsd.ComplexType([ zeep.xsd.Element('AccesslicenseNumber',]) )header_value = header(UsernameToken={'Username':'test_user','Password':'testing'},UPSServiceAccesstoken={'AccesslicenseNumber':'test_pwd'})clIEnt.service.method_name_goes_here( _soapheaders=[header_value],#other method data goes here )总结
以上是内存溢出为你收集整理的python-3.x – Python – Zeep SOAP复杂标题全部内容,希望文章能够帮你解决python-3.x – Python – Zeep SOAP复杂标题所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)