Search code examples
xmlrubyxml-rpc

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?


Solution

  • 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).