XMLRPC Problem

Hello,

I am trying to run a small test case here and it times out on me all the
time:
Here is my code:

require 'xmlrpc/client'
require 'pp'

applicationName = "Demo AcceptanceTestingApp"
server =
XMLRPC::Client.new2("https://vwtest.oas.psu.edu/isapi/gi.dll/rpc2")
result = server.call("blank","whatever",applicationName)
pp result

The call just times out even though I have other programs in Python, CF
working just fine.
Is there any way to see what ruby sends to the server? I tried using
HTTPAnalyzer, but it captures nothing.
I am wondering if it even sends anythign?

···

--
Posted via http://www.ruby-forum.com/.

If one side is Linux, try

   tcpdump -i eth0 -n -s0 -X tcp port 80

or install wireshark and use that (for a fluffy GUI interface).

If both sides are Windows, you can install wireshark, or its older cousin
ethereal.

HTH,

Brian.

···

On Tue, Mar 06, 2007 at 04:50:36AM +0900, Aa Aa wrote:

I am trying to run a small test case here and it times out on me all the
time:
Here is my code:

require 'xmlrpc/client'
require 'pp'

applicationName = "Demo AcceptanceTestingApp"
server =
XMLRPC::Client.new2("https://vwtest.oas.psu.edu/isapi/gi.dll/rpc2"\)
result = server.call("blank","whatever",applicationName)
pp result

The call just times out even though I have other programs in Python, CF
working just fine.
Is there any way to see what ruby sends to the server? I tried using
HTTPAnalyzer, but it captures nothing.

Brian Candler wrote:

I am trying to run a small test case here and it times out on me all the
time:
Here is my code:

require 'xmlrpc/client'
require 'pp'

applicationName = "Demo AcceptanceTestingApp"
server =
XMLRPC::Client.new2("https://vwtest.oas.psu.edu/isapi/gi.dll/rpc2"\)
result = server.call("blank","whatever",applicationName)
pp result

The call just times out even though I have other programs in Python, CF
working just fine.
Is there any way to see what ruby sends to the server? I tried using
HTTPAnalyzer, but it captures nothing.

If one side is Linux, try

   tcpdump -i eth0 -n -s0 -X tcp port 80

Or:

$ cat xmlrpc_conversation.rb

require 'xmlrpc/client'
require 'yaml'

module XMLRPC
   class ConversationSavingClient < Client
     attr_reader :conversation
     def initialize(*args)
       super
       @conversation =
     end

     def do_rpc(request, async=false)
       response = super(request, async)
       @conversation << [request, response]
       return response
     end
   end
end

client = XMLRPC::ConversationSavingClient.new('time.xmlrpc.com', '/RPC2', 80)
client.call('currentTime.getCurrentTime')
puts client.conversation.to_yaml

$ ruby xmlrpc_conversation.rb

···

On Tue, Mar 06, 2007 at 04:50:36AM +0900, Aa Aa wrote:

---
- - |
     <?xml version="1.0" ?><methodCall><methodName>currentTime.getCurrentTime</methodName><params/></methodCall>

   - |
     <?xml version="1.0"?>
     <methodResponse>
         <params>
                 <param>
<value><dateTime.iso8601>20070305T13:43:22</dateTime.iso8601></value>
                         </param>
                 </params>
         </methodResponse>

Is that helpful?

--
Alex

HELPFULL!?!! Helpful is not the word. You should be elevated to god-like
status :).
Your solution exposed my embarrasing stupidity and lack of attention
plus it taught me something.
Ruby does force me think harder at stuff and certainly didn't try hard
enough.
Thanks again.

Brian: Yours helped me too. That's how I figured out that there was no
communication except certificate handshake. HTTPAnalyzer isn't able to
capture anything for whatever reason.

Mucho THNX

Alex Young wrote:

···

Brian Candler wrote:

XMLRPC::Client.new2("https://vwtest.oas.psu.edu/isapi/gi.dll/rpc2&quot;\)

   tcpdump -i eth0 -n -s0 -X tcp port 80

Or:

$ cat xmlrpc_conversation.rb

require 'xmlrpc/client'
require 'yaml'

module XMLRPC
   class ConversationSavingClient < Client
     attr_reader :conversation
     def initialize(*args)
       super
       @conversation =
     end

     def do_rpc(request, async=false)
       response = super(request, async)
       @conversation << [request, response]
       return response
     end
   end
end

client = XMLRPC::ConversationSavingClient.new('time.xmlrpc.com',
'/RPC2', 80)
client.call('currentTime.getCurrentTime')
puts client.conversation.to_yaml

$ ruby xmlrpc_conversation.rb
---
- - |
     <?xml version="1.0"
?><methodCall><methodName>currentTime.getCurrentTime</methodName><params/></methodCall>

   - |
     <?xml version="1.0"?>
     <methodResponse>
         <params>
                 <param>

<value><dateTime.iso8601>20070305T13:43:22</dateTime.iso8601></value>
                         </param>
                 </params>
         </methodResponse>

Is that helpful?

--
Posted via http://www.ruby-forum.com/\.

Aa Aa wrote:

HELPFULL!?!! Helpful is not the word. You should be elevated to god-like status :).

Now now, don't be too hasty - I'm only channelling the wonder of Matz :slight_smile:

Your solution exposed my embarrasing stupidity and lack of attention plus it taught me something.

We're all learning here - I don't think there's anything to be ashamed of in asking a question if you honestly can't see a way through, even if the answer does look obvious when you see it. Hell, I've done it enough times...

Ruby does force me think harder at stuff

That's why I love it :slight_smile:

Thanks again.

No worries.

···

--
Alex