I am using SUDS to call SOAP with this code:
client = Client("https://xyz.rwth.de/SecuredDataService/SecuredData?wsdl",location="https://xyz.rwth.de/SecuredDataService/SecuredData",cache=None)
For an HTTP request, a request is made similar to the code above (without part of the location in the above request and the correct HTTP URL), but for HTTPS it fails and gives the following error.
DEBUG: suds.wsdl: read wsdl at: https://xyz.rwth.de/SecuredDataService/SecuredData?wsdl ...
DEBUG: suds.xsd.sxbasic: Import: 0x1025f5710, import ns = "http://secured.services.xyz123.org/", place = "http://xyz.rwth.de:7070/SecuredDataService/SecuredData?xsd = 1 "
DEBUGGING: suds.transport.http: opening ( http://xyz.rwth.de:7070/SecuredDataService/SecuredData?xsd=1 )
ERROR: django.request: Internal server error: /XYZ12/index.html/
I get urlopen error [Errno 60] Operation timed out
Basically the log file shows that the location argument is NOT used, not the location specified in the WSDL file (which: http://xyz.rwth.de:7070/SecuredDataService/SecuredData?xsd=1 ). Why so, even if the SUDS documentation clearly states: location: This overrides the service port address URL defined in the WSDL. ?
Edit: After adding cache=None correct location is invoked, and all WSDL is printed in the log files. However, after that, the same error is printed in the log files (as mentioned above).
source share