I have been playing around with SOAP a little (as a client), and I
really like soap4r. I was able to get my SOAP client running without
too much trouble at all.
Unfortunately, the performance is fairly slow. We have a SOAP web
service running on the localhost, but it still takes about 4-5 seconds
to get 150K of data.
I used the wiredump to put the request/response to STDOUT, and I
realized that the actual communication is happening very fast (easily
within .5 seconds). However, it hangs for a few seconds after the
response is received, before finally returning.
I am guessing that the unmarshalling and parsing of the returned
envelope is what is taking the most time. I have heard that Ruby is not
so great at XML parsing.
Lucky for me, the return is one big chunk of text, and I just need to
strip off the envelope and don’t need any complicated parsing of the
So, finally, my question: What would be the quickest and easiest (in
terms of programming skill) of sending the SOAP call and getting the
resulting XML, but bypassing the parsing/unmarshalling? I think I can
handle the parsing by hand.