SOAP::Lite is being shit again

drhyde on 2004-10-08T14:31:06

Yet again, SOAP::Lite is behaving in unexpected ways. If I have a chunk of text, which is utf-8, and return it from my SOAPy method, SOAP::Lite base64-encodes it before sending it over the network, for no apparent reason.

This behaviour is undocumented.

The most excellent Claes Jacobssen told me how to fix it on IRC, but the fix involves using an undocumented package supplied with SOAP::Lite in an undocumented way. From what I can tell, the philosophy behind the documentation for this appalling module is "it was hard to write, so it should be hard to use". This is, even though it appears to work, AWFUL software.

Of course, it doesn't help that I'm having to expose my SOAP::Lite-ish server to another piece of awful software - .net. .net is unnecessarily picky and pedantic about, well, everything. It needs to have every little detail explained to it in triplicate or it throws its toys on the floor.


XML, UTF-8 and .NET

ajt on 2004-10-08T15:47:13

I'm impressed, drhyde using XML, UTF-8 and a Windows thing... What next?

Re:XML, UTF-8 and .NET

lilstevey on 2005-07-05T09:05:15

Would you mind sharing the fix - I've just run into the exact self same problem, and have been banging my head against the wall for far too long on it...

Re:XML, UTF-8 and .NET

lilstevey on 2005-07-05T09:48:53

Which is of course:
package demo.pm

use SOAP::Lite;

sub currency_symbol
{
   return SOAP::Data -> type ( string => "[british currency symbol]" );
}
As mentioned on the SOAP::Lite mailing list, a few days ago. Its in the docs ( at present ) too, but looks like its in a client context...