[Fedora-suds-list] Suds not using UTF-8 encoding?
Joshua J. Kugler
joshua at eeinternet.com
Mon Apr 5 18:52:02 UTC 2010
On Monday 05 April 2010, Jeff Ortel elucidated thus:
> On 04/03/2010 03:33 AM, Joshua J. Kugler wrote:
> > So, in my ongoing saga getting suds working with MS Exchange 2007
> > (which I'm sure you'll hear a lot more about before I'm done :) ),
> > I hit an a couple interesting snags.
> >
> > python-ntlm seems to time out against the server when doing POST
> > requests (but get requests seem fine). But that's not the current
> > issue.
> >
> > When one of my requests went through, I got back this message:
> >
> > suds.WebFault: Server raised fault: 'Server was unable to process
> > request. ---> Input message does not conform to Simple SOAP
> > Binding Profile Version 1.0. Requirement R1012: A MESSAGE MUST
> > serialize the envelope using either UTF-8 or UTF-16 character
> > encoding.'
> >
> > I thought Suds encoded everything in UTF-8 be default. The debug
> > output is below:
> >
> > DEBUG:suds.client:sending to (https://myserver/EWS/exchange.asmx)
> > message:
> > <SOAP-ENV:Envelope
> > xmlns:ns0="http://schemas.microsoft.com/exchange/services/2006/type
> >s" xmlns:ns1="http://schemas.xmlsoap.org/soap/envelope/"
> > xmlns:ns2="http://schemas.microsoft.com/exchange/services/2006/mess
> >ages" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> > xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
> > <SOAP-ENV:Header/>
> > <ns1:Body>
> > <ns2:GetFolder>
> > <ns2:FolderShape>
> > <ns0:BaseShape>Default</ns0:BaseShape>
> > </ns2:FolderShape>
> > <ns2:FolderIds>
> > <ns0:DistinguishedFolderId Id="inbox"/>
> > </ns2:FolderIds>
> > </ns2:GetFolder>
> > </ns1:Body>
> > </SOAP-ENV:Envelope>
> > DEBUG:suds.client:headers = {'SOAPAction':
> > u'"http://schemas.microsoft.com/exchange/services/2006/messages/Get
> >Folder"', 'Content-Type': 'text/xml'}
> >
> > Should the fact that it's UTF-8 encoded be in the headers or
> > request somewhere like so:
>
> Suds probably should be setting the content-type http header as
> described in ticket 251. (https://fedorahosted.org/suds/ticket/251).
> Can you try and let me know if this fixes your problem?
Weird, I use this code:
headers = {'Content-Type': 'text/xml; charset=utf-8'}
c =
suds.client.Client('file:///home/jkugler/crc/local-tools/services.wsdl',
transport=ntlm,
headers=headers)
And Suds still tells me it's only sending 'text/xml' as the type.
Leading to the same error.
DEBUG:suds.client:sending to (https://myserver/ews/exchange.asmx)
message:
<SOAP-ENV:Envelope
xmlns:ns0="http://schemas.microsoft.com/exchange/services/2006/types"
xmlns:ns1="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ns2="http://schemas.microsoft.com/exchange/services/2006/messages"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<ns1:Body>
<ns2:GetFolder>
<ns2:FolderShape>
<ns0:BaseShape>Default</ns0:BaseShape>
</ns2:FolderShape>
<ns2:FolderIds>
<ns0:DistinguishedFolderId Id="inbox"/>
</ns2:FolderIds>
</ns2:GetFolder>
</ns1:Body>
</SOAP-ENV:Envelope>
DEBUG:suds.client:headers = {'SOAPAction':
u'"http://schemas.microsoft.com/exchange/services/2006/messages/GetFolder"', 'Content-Type': 'text/xml'}
In the failed message back from the server, it starts:
<?xml version="1.0" encoding="utf-8"?>
Is that what needs to be added?
j
>
> > <?xml version="1.0" encoding="UTF-8"?>
> >
> > Where is the errant behavior? Me? Suds? Exchange?
> >
> > j
--
Joshua Kugler
Part-Time System Admin/Programmer
http://www.eeinternet.com
PGP Key: http://pgp.mit.edu/ ID 0x73B13B6A
More information about the suds
mailing list