I am using SUDS to call SOAP using this code:
client = Client("https://xyz.rwth.de/SecuredDataService/SecuredData?wsdl",location="https://xyz.rwth.de/SecuredDataService/SecuredData",cache=None)
For a HTTP request, a request similar to the above code works (without the location part in the above request and the correct HTTP URL), but for HTTPS it fails and give the below error.
DEBUG:suds.wsdl:reading wsdl at: https://xyz.rwth.de/SecuredDataService/SecuredData?wsdl ...
DEBUG:suds.xsd.sxbasic:Import:0x1025f5710, importing ns="http://secured.services.xyz123.org/", location="http://xyz.rwth.de:7070/SecuredDataService/SecuredData?xsd=1"
ERROR:django.request:Internal Server Error: /XYZ12/index.html/
I am getting a
urlopen error [Errno 60] Operation timed out
Basically the log file shows that the
location argument is NOT getting used, instead the location specified in the WSDL file (which is: http://xyz.rwth.de:7070/SecuredDataService/SecuredData?xsd=1) is getting used. Why is that so, even when the SUDS documentation clearly states:
location: This overrides the service port address URL defined in the WSDL.?
Edit: After adding the
cache=None the correct location is getting called, and the whole WSDL is getting printed in the log files. However after that, the same error (as mentioned above) is printed in the log files.