如何在Rho :: AsyncHttp的post方法中以json对象的形式发送数据

时间:2013-09-13 03:43:44

标签: json rhomobile rhodes

我使用Rho::AsyncHttp.post方法将数据发送到服务器,但我无法将数据作为json对象发送。但是将数据作为字符串发送到服务器但服务器api需要json数据。

这里是我正在使用的代码,

data = { :query1 => "this demo" , :query2 => "another demo" }
result = Rho::AsyncHttp.post(
    :url => "https://www.myserverapi.com/myapi",
    :body => data
)

以上代码无法连接到服务器。我怎么改变:body => #{data}, 它到达服务器但是作为字符串。蚂蚁的建议?

1 个答案:

答案 0 :(得分:1)

首先,当您设置:body => #{data}时,您正在将json数据转换为执行#{}的字符串

其次,您需要将:header设置为{ "Content-Type" => "application/json; charset=utf-8", "Accept" => "application/json" }。这使得post方法接受数据为json对象。

所以你需要以下代码,

data = { :query1 => "this demo" , :query2 => "another demo" } # Any data to be passed
result = Rho::AsyncHttp.post(
    :url => "https://www.myserverapi.com/myapi",
    :header => { "Content-Type" => "application/json; charset=utf-8", "Accept" => "application/json" },
    :body => Rho::JSON.parse(data)
)

希望这会对你有所帮助。