我使用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}
,
它到达服务器但是作为字符串。蚂蚁的建议?
答案 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)
)
希望这会对你有所帮助。