简体   繁体   中英

unable to consume SOAP service in zeep, python

I was trying to consume a soap service in python with zeep. I've consumed several soap services with zeep as well. But for a particular soap service, a weird response in returning, unlike a well-organized dictionary.

My python code is below:

import zeep
import json

def getToken1():
wsdl2 = 'http://trx.*********ast.co.id/Webservice/b******ervice?wsdl'
client2 = zeep.Client(wsdl2)
parameters = {
        'username':'n**l***s',
        'password': 'ra8*******PeSw',
        'counterpart':'***',
        'ipAddress':'127.0.0.1'
}
info = client2.service.requestToken(parameters)
json = zeep.helpers.serialize_object(info, dict)
return json

print(getToken1())

ie the credentials are absolutely correct.

Unfortunately the output is below:

Traceback (most recent call last):
File "F:\Maksudul_Hasan\python\python_soapClient\index.py", line 17, in 
<module>
print(getToken1())
File "F:\Maksudul_Hasan\python\python_soapClient\index.py", line 13, in 
getToken1
info = client2.service.requestToken(parameters)
File 
"C:\Users\maksudul.it\AppData\Local\Programs\Python\Python39\lib\site-                
packages\zeep\proxy.py", line 46, in __call__
return self._proxy._binding.send(
File 
"C:\Users\maksudul.it\AppData\Local\Programs\Python\Python39\lib\site- 
packages\zeep\wsdl\bindings\soap.py", line 135, in send
return self.process_reply(client, operation_obj, response)
File 
"C:\Users\maksudul.it\AppData\Local\Programs\Python\Python39\lib\site- 
packages\zeep\wsdl\bindings\soap.py", line 206, in process_reply
raise TransportError(
zeep.exceptions.TransportError: Server returned response (200) with 
invalid XML: Invalid 
XML content received (AttValue: " or ' expected, line 77, column 14).
Content: b'\n\t\t<html><head><title>NuSOAP: 
Br***stservice</title>\n\t\t<style 
type="text/css">\n\t\t    body    { font-family: arial; color: #000000; 
background-color: 
#ffffff; margin: 0px 0px 0px 0px; }\n\t\t    p       { font-family: 
arial; color: 
#000000; margin-top: 0px; margin-bottom: 12px; }\n\t\t    pre { 
background-color: silver; 
padding: 5px; font-family: Courier New; font-size: x-small; color: 
#000000;}\n\t\t    ul      
....................

It's a large response. But in soapUI:

Request:

<soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" 
xmlns:urn="urn:SOAPServerWSDL">
<soapenv:Header/>
 <soapenv:Body>
   <urn:requestToken 
  soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
      <parameters xsi:type="urn:requestTokenCT" 
         xmlns:urn="urn:***stservice">
         <!--You may enter the following 4 items in any order-->
         <username xsi:type="xsd:string">nbl**s</username>
         <password xsi:type="xsd:string">ra8*******4iphEsPeSw</password>
         <counterpart xsi:type="xsd:string">N*L</counterpart>
         <ipAddress xsi:type="xsd:string">127.0.0.1</ipAddress>
      </parameters>
   </urn:requestToken>
 </soapenv:Body>
</soapenv:Envelope>

Response:

<SOAP-ENV:Envelope SOAP- 
ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" 
xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema- 
instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" 
xmlns:tns="urn:Brifastservice">
  <SOAP-ENV:Body>
      <ns1:requestTokenResponse xmlns:ns1="urn:SOAPServerWSDL">
         <return xsi:type="tns:requestTokenCTResult">
            <message xsi:type="xsd:string">Success</message>
            <statusCode xsi:type="xsd:string">0**01</statusCode>
            <token 
         xsi:type="xsd:string">99B4631DCD445***23BF6CED31C1B6574</token>
         </return>
      </ns1:requestTokenResponse>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Can anyone help me to get data from this soap service through zeep in python?

Your requested WSDL URL contains https protocol and you are calling http request.

Please call this url: https://trx.*********ast.co.id/Webservice/b******ervice?wsdl

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM