[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

XMLRPC Problem

Aa Aa

3/5/2007 7:51:00 PM

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

4 Answers

Brian Candler

3/5/2007 8:35:00 PM

0

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

Alex Young

3/5/2007 9:47:00 PM

0

Brian Candler wrote:
> 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/...)
>> 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
---
- - |
<?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

Aa Aa

3/5/2007 10:55:00 PM

0

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

Alex Young

3/6/2007 10:19:00 AM

0

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 :-)


> 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 :-)

> Thanks again.
No worries.

--
Alex