用Ruby on Rails 的 xmlrpc 來連接webservice

require "xmlrpc/client"
class SoapController < ApplicationController
  before_filter :get_XMLRPC_server
  
  def index
    @products_arr = get_products()
  end
  
  def rcp

    @result_1= @server.call("Bugzilla.version")
    @result_2= @server.call("Bugzilla.timezone")
    @result_3= @server.call("Bug.get",{:ids=>[1]})
   
    render :action=>'index'
  end
  
  def new_bug
    @product_name = params[:product_name]
  end
  
  def create_bug
    
    bug = {
        :product     => params[:p], 
        :component   => params[:component],
        :summary     => params[:summary],
        :version     => 'unspecified',
        :description => params[:description],
        :op_sys      => params[:op_sys],
        :platform    => params[:platform],   
        :priority    => params[:priority],
        :severity    => params[:severity]
    }
    
    @server.call("Bug.create",bug)
    
    redirect_to :action=>'index'
  end
  
private 

  def login_bugzilla(name,pass,is_remember)
    
     loginInfo= {
      :login=>name,
      :password => pass,
      :remember => is_remember 
    }
    
    return  @server.call("User.login",loginInfo)
  end
  
  def get_XMLRPC_server
    @server =  XMLRPC::Client.new( "192.168.1.37", "/bugzilla/xmlrpc.cgi")
    login_bugzilla('[email protected]','111111',false)
  end
  
  def get_products
    ids = @server.call('Product.get_selectable_products')
    p = @server.call('Product.get',ids)
    return p["products"]
  end

end

 這裏我用的是Bugzilla的webservice 做例子

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章