用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('test1@a.com','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 做例子

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值