Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Ruby > xml-rpc calling question

Reply
Thread Tools

xml-rpc calling question

 
 
dhf0820.lists@gmail.com
Guest
Posts: n/a
 
      02-28-2009
I am trying to understand the XMLRPC client library and how to use it
properly. I have looked at some of the examples and they area always
add these two numbers together. I need help in writing a client with a
complex structure of data, lots of individual values and arrays of
values, even some structures.

Is there an example of how to create the passed structure a nd pass
it. Or do I pass a hash of thelements?

Don French
 
Reply With Quote
 
 
 
 
James Gray
Guest
Posts: n/a
 
      02-28-2009
On Feb 28, 2009, at 7:59 AM, http://www.velocityreviews.com/forums/(E-Mail Removed) wrote:

> I am trying to understand the XMLRPC client library and how to use it
> properly. I have looked at some of the examples and they area always
> add these two numbers together. I need help in writing a client with a
> complex structure of data, lots of individual values and arrays of
> values, even some structures.
>
> Is there an example of how to create the passed structure a nd pass
> it. Or do I pass a hash of thelements?


Arrays, Hashes, Numeric types, and simple Strings are all handled the
same in XML-RPC. Just replace the simple data you've seen in the
examples with more complex collections and it should work fine.

James Edward Gray II

 
Reply With Quote
 
 
 
 
dhf0820.lists@gmail.com
Guest
Posts: n/a
 
      02-28-2009
On Feb 28, 9:42 am, James Gray <(E-Mail Removed)> wrote:

> Arrays, Hashes, Numeric types, and simple Strings are all handled the
> same in XML-RPC. Just replace the simple data you've seen in the
> examples with more complex collections and it should work fine.
>
> James Edward Gray II


Ok I have tried that with the following:
server = XMLRPC::Client.new2("http://websearch.ramaui.com/ramxml.php")
results = server.call("lists",{ "dbid" =>"dbid1113086003", "getlist"
=> "district"})

and I get XMLRPC::FaultException: XMLRPC::FaultException

Also tried this:
results = server.call("lists",{ :dbid =>"dbid1113086003", :getlist =>
"district"})
and same results

finally tried this:
results = server.call("lists", :dbid =>"dbid1113086003", :getlist =>
"district")

with the same results

I can run this as the base example I took it from:
require 'xmlrpc/client'
require 'pp'

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

And it woks fine.

What is the correct initialization and call?

the actual xml structure that should be passed is this:
<methodCall>
<methodName>lists</methodName>
-
<params>
-
<param>
-
<value>
-
<struct>
-
<member>
<name>dbid</name>
-
<value>
<string>dbid1113086003</string>
</value>
</member>
-
<member>
<name>getlist</name>
-
<value>
<string>district</string>
</value>
</member>
</struct>
</value>
</param>
</params>
</methodCall>

When called from an unapproved ip it should come back with a message
stating so.

Don French
Any ideas?
 
Reply With Quote
 
James Gray
Guest
Posts: n/a
 
      03-01-2009
On Feb 28, 2009, at 10:23 AM, (E-Mail Removed) wrote:

> Ok I have tried that with the following:
> server = XMLRPC::Client.new2("http://websearch.ramaui.com/ramxml.php")
> results = server.call("lists",{ "dbid" =>"dbid1113086003", "getlist"
> => "district"})


This looks right to me.

> the actual xml structure that should be passed is this:


> When called from an unapproved ip it should come back with a message
> stating so.


They both seem to be what we are seeing:

$ ruby xtest.rb
xtest.rb:7: warning: method redefined; discarding old call2
<?xml version="1.0" ?><methodCall><methodName>lists</
methodName><params><param><value><struct><member>< name>getlist</
name><value><string>district</string></value></
member><member><name>dbid</name><value><string>dbid1113086003</
string></value></member></struct></value></param></params></methodCall>
/usr/local/lib/ruby/1.8/xmlrpc/client.rb:414:in `call': You do not
have access to XML-RPC WebSearch. (XMLRPC::FaultException)
Contact (E-Mail Removed) if you have any questions.
from xtest.rb:16
$ cat xtest.rb
#!/usr/bin/env ruby -wKU

require "xmlrpc/client"

# Patch XML-RPC to show us what is sent.
class XMLRPC::Client
def call2(method, *args)
request = create().methodCall(method, *args)
puts request
data = do_rpc(request, false)
parser().parseMethodResponse(data)
end
end

server = XMLRPC::Client.new2("http://websearch.ramaui.com/ramxml.php")
results = server.call( "lists", "dbid" => "dbid1113086003",
"getlist" => "district" )

__END__

What make you think this isn't working?

James Edward Gray II

 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
c++ calling java calling c++ ... Klaus Friese C++ 7 08-15-2005 09:23 PM
calling virtual function results in calling function of base class... Andreas Lagemann C++ 8 01-10-2005 11:03 PM
calling virtual function results in calling function of base class ... tiwy C++ 0 01-09-2005 11:17 PM
Calling FormsAuthentication.SignOut() after calling Response.Flush =?Utf-8?B?TWFydGluIExlZQ==?= ASP .Net 1 09-28-2004 12:47 PM
Server Side button calling page_load before calling it's own click event. Ryan Ternier ASP .Net 4 07-29-2004 01:06 PM



Advertisments