Forum: Ruby on Rails XMLRPC calling question

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
6d465bb8df6bda89904c7aafea0dda6c?d=identicon&s=25 Don French (Guest)
on 2009-02-24 03:58
(Received via mailing list)
I have a mashup I need to d with a site that uses xmlrpc. I am trying
to understand the the call method.  I have the following items that
need to be passed to the remote site.

methodName
and the following structure
   ID - string
   area - string
   views = array of strings

I know what the xml should look like
<methodCall>
  <methodName>lists</methodName>
  <params>
    <param>
      <value>
        <struct>
          <member>
                <name>id</name>
                <value>
             <string>12345</string>
          </value>
     </member>
     <member>
    <name>list</name>
    <value>
        <string>district</string>
    </value>
      </member>
      <member>
    <name>View</name>
    <value>
        <array>
      <data>
          <value>
        <string>Ocean</string>
          </value>
          <value>
        <string>Mountain</string>
          </value>
          <value>
        <string>Golf Course</string>
         </value>
         <value>
        <string>Garden View</string>
         </value>
      </data>
        </array>
    </value>
        </member>
     </struct>
        </value>
    </param>
  </params>
</methodCall>

I have results from various inputs from the view for the value. I am
trying to figure out how to create the xml structure and how to use it
in the XMLRPC call.

Any help?

Don French
92497f51734ed56687928d5fd68d870a?d=identicon&s=25 Sarah Mei (Guest)
on 2009-02-24 04:04
(Received via mailing list)
erb. Set up a boilerplate file and fill in what you need. It's MUCH
faster than trying to generate it with REXML.

On Mon, Feb 23, 2009 at 6:57 PM, Don French <dhf0820@gmail.com> wrote:
>
> I know what the xml should look like
[...lots of xml...]
6d465bb8df6bda89904c7aafea0dda6c?d=identicon&s=25 Don French (Guest)
on 2009-02-24 05:16
(Received via mailing list)
OK I can do that, but how is that result string of xml passed to the
server I have a variable remote_server that was created with the
XMLRPC::Client.new2 call.  how do I then call the method "search" on
that serve?

Don French
Ef0db53920b243d6758c2f6b1306df0d?d=identicon&s=25 Steve Ross (cwd)
on 2009-02-24 07:52
(Received via mailing list)
Why not

require 'xmlrpc/client'
@server = XMLRPC::Client.new((secure) ? MY_SECURE_URN : MY_URN,
MY_ENDPOINT, nil, nil, nil, nil, nil, secure)
@server.call('my.method.name', {:id => 1, :area => 'someplace'}

etc.

I've had nothing but good results from xmlrpc. Any reason not to use it?
E1b1706c1794a3732242df21b768cb4b?d=identicon&s=25 Nate Leavitt (nateleavitt)
on 2009-02-24 17:27
(Received via mailing list)
I access 3rd party software through xmlrpc calls.  I built mine as a
plugin... but i'll extract some of it for you in this example below:

require "xmlrpc/client"

def api_perform(class_type, method, *args)
  begin
    server = XMLRPC::Client.new3({'host' => @api_url, 'path' => "/api/
xmlrpc", 'port' => 443, 'use_ssl' => true})
    result = server.call("#{class_type}.#{method}", @api_key, *args)
  rescue XMLRPC::FaultException => e
    puts "*** Error: #{e.faultCode} - #{e.faultString} ***"
  end

  return result
end

The result that's returned is a Hash.

Hope this helps.
6d465bb8df6bda89904c7aafea0dda6c?d=identicon&s=25 Don French (Guest)
on 2009-02-24 19:37
(Received via mailing list)
Thank you. I assume the args parameter is a hash of the variou values
to be put into the XML. Correct?
Does the call method actually generates the XML as I described, or do
I have to generate it?

Don French
This topic is locked and can not be replied to.