문제

I have a camera and I am trying to connect to it vis suds. I have tried to send raw xml and have found that the only thing stopping the xml suds from working is an incorrect Soap envelope namespace.

The envelope namespace is:

xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"

and I want to rewrite it to:

xmlns:SOAP-ENV="http://www.w3.org/2003/05/soap-envelope"

In order to add a namespace in python I try this code:

message = Element('Element_name').addPrefix(p='SOAP-ENC', u='www.w3.org/ENC')

But when I add the SOAP-ENV to the namespace it doesn't write as it is hardcoded into the suds bindings. Is there a way to overwrite this in suds?

Thanks for any help.

도움이 되었습니까?

해결책 2

I managed to get this working, the soap envelope is hard coded into bindings.py that is stored in suds.egg installed in your site-packages. I changed the SOAP envelope address to http://www.w3.org/2003/05/soap-envelope. This was compatible with my camera. I was unable to find a command to overwrite this envelope in suds so I hard coded it in to the bindings.py.

Thanks for any help

다른 팁

I got around it by manually overriding the suds.binding.envns variable in the bindings module:

from suds.bindings import binding
binding.envns=('SOAP-ENV', 'http://www.w3.org/2003/05/soap-envelope')

From here on, all goes well (with my service, that is)

Manually updating binding.py definitely isn't the right way to go. You should be able to utilize the ImportDoctor to override your default bindings. Have a look at the documentation for fixing broken schemas on the Suds website.

Also, what versions of Python and suds are you using?

어떤 종류의 토큰을 생성 한 토큰이 생성됩니까?SAML 또는 SiteMinder 토큰입니까?SharePoint에는 Windows Identity Foundation을 기반으로 한 클레임 기반 토큰을 실제로 이해하는 보안 저장소 서비스가 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top