我知道我们可以使用直接网络服务在没有Rhosync或Rhoconnect的情况下使用rhodes同步数据,但我在这里有点混淆将代码放在webservice调用的位置,以及我们如何初始化它。任何人都可以用小例子帮助我吗?
先谢谢。
答案 0 :(得分:3)
我明白了它对我有用。
class ProductController < Rho::RhoController
include BrowserHelper
# GET /product
def index
response = Rho::AsyncHttp.get(:url => "example.com/products.json",
:headers => {"Content-Type" => "application/json"})
@result = response["body"]
render :back => '/app'
end
# GET /product/{1}
def show
id =@params['id']
response = Rho::AsyncHttp.get(:url => "example.com/products/"+ id +".json",
:headers => {"Content-Type" => "application/json"})
@result = response["body"]
end
# GET /product/new
def new
@product = product.new
render :action => :new, :back => url_for(:action => :index)
end
# GET /product/{1}/edit
def edit
id =@params['product_id'].to_s
response = Rho::AsyncHttp.get(:url => "example.com/products/#{id}.json",
:headers => {"Content-Type" => "application/json"})
@result = response["body"]
end
# POST /product/create
def create
name = @params['product']['name']
price = @params['product']['price']
body = '{"product" : {"name" : "'+ name +'","price" :"'+ price +'" } }'
@result = Rho::AsyncHttp.post(:url => "example.com/products.json",
:body => body, :http_command => "POST", :headers => {"Content-Type" => "application/json"})
redirect :action => :index
end
# POST /product/{1}/update
def update
name=@params['product']['name']
price=@params['product']['price']
body = '{"product" : {"name" : "' + name + '","price" :"' + price + '" } }'
id = @params["product_id"].to_s
response = Rho::AsyncHttp.post(:url => "example.com/products/#{id}.json",
:body => body, :http_command => "PUT",:headers => {"Content-Type" => "application/json"})
redirect :action => :index
end
# POST /product/{1}/delete
def delete
id = @params["product_id"].to_s
response = Rho::AsyncHttp.post(:url => "example.com/products/#{id}.json",
:http_command => "DELETE",
:headers => {"Content-Type" => "application/json"})
redirect :action => :index
end
end
答案 1 :(得分:0)
下一个最简单的http服务器请求形式:
Rho::AsyncHttp.get(
:url => "http://www.example.com",
:callback => (url_for :action => :httpget_callback)
)
其中httpget_callback
是控制器回调方法的名称。
点击official Rhodes docs了解详情。