SOAP and WSMethodInvocation

Well, I dove back into the world of SOAP services and Objective-C recently, digging back into things and trying figuring out how the pieces could all work together a little more easily.

I guess the most general thing to say is WSMakeStubs (Apple’s code-generating tool for SOAP service proxies) is just sort of broken. It works for the simplest cases, but that’s really it. And to make matters even more frustrating the WebServices CoreFoundation pieces just really don’t have support for SOAP literal encoded document message encoding.

And with SOAP getting more and more excessively complex (I’m really not a fan of SOAP, I’m just trying to figure out how to make the best of an icky situation), the WebServices APIs are just not up to strength. The whole WS-* field of crazy XML based permutations is just enough to make your head spin.

The good news is that Tiger now comes with a really nice XML api library: NSXML. It’s not perfect either mind you, but its pretty effective and complete. And best of all, between NSXML and NSMutableURLRequest, you can pretty much put together your own SOAP proxies without too much pain. Yeah, I’d really rather have a library to make it all easy. But at least I’m not having to go down to the sockets level to make this work.

Now I still haven’t made the breakthrough I’d been hoping to – faking out the default ASP.NET web services into talking with my code – but its a LOT closer than it was previously. My particular target has some extra validation components that I’m not yet satisfying, so it’s still bitchin’ at me. Ah well – that’s what weekends are for, ja?

In the meantime, I’ve got a quick “make all these changes” minidocument stored away in a VoodooPad ‘document’ pending whatever I decide to do with the darn thing.