bwizzy bwizzy - 6 months ago 24
Ruby Question

How to do a wiredump of XMLRPC::Client in ruby?

I'm working on some code using XML RPC in ruby and need to see some debug info, how do you do that?

Answer

Reading the source of the package, XMLRPC::Client uses Net::HTTP in turn as its transport.

So I think you should be able to monkey-patch a method into the XMLRPC::Client accordingly:

require 'pp'

# the magic happens here
class XMLRPC::Client
  def set_debug
    @http.set_debug_output($stderr);
  end
end

server = XMLRPC::Client.new2("http://rpc.technorati.com/rpc/ping")
server.set_debug
result = server.call("weblogUpdates.ping", "Copenhagen.rb", "http://www.copenhagenrb.dk/")
pp result

(sample for XMLRPC snarfed from here).