我试图在POST调用的有效负载中插入一个公共类方法。我写的代码:
this.Host
所以我要做的就是这次调用每次调用时都会生成一个新的UUID。显然,问题在于整个有效载荷是单引号(例如')。我尝试用单引号包装UUID,但这不会生成相同的输出。我也试过#{,但这也不起作用。
我还可以尝试在不更改消息的情况下调用UUID方法吗?
答案 0 :(得分:0)
你可以通过几种方式去。您可以使用插值字符串(带双引号"like this"
的字符串,并且确实在此字符串中使用#{}
。但是,您需要手动转义字符串中的每个"
麻烦。
另一种方法是使用您想要的json数据制作哈希值,并在其上调用.to_json
。(注意:您需要添加require 'json'
。
{ event: "start_skill", uuid: RandomSecure.uuid }.to_json
哪会导致:
"{\"event\":\"start_skill\", \"udid\": \"some random udid\"}"
所以要把它包起来:
# somewhere at the top of your file
require 'json'
payload = { event: "start_skill", uuid: RandomSecure.uuid }.to_json
RestClient::Request.execute(method: :post,
url: $url,
payload: payload,
headers: { "Content-Type" => "application/json" })