1

我需要以一种有点奇怪(说宽松)的格式创建一个发布请求。要发送的确切请求应采用以下格式

https://xyz.com/ping?app_id=123&adv_id=345&event=sale&event_data="amt=30_USD;user_id=204050 "

将发布请求发送到以下格式的 url 很容易:-

https://xyz.com/ping?app_id=123&adv_id=345&event=sale&amt=30_USD&user_id=204050 _

这可以使用这样的代码来实现:-

Net::HTTP.post_form(URI.parse("http://xyz.com/ping"), params)

其中, params 变量被适当地填充(散列)。

我应该进行哪些修改来解释与正常情况相比的这种变化,特别是考虑到事件数据周围的双引号。

4

2 回答 2

1

阅读并调整以下链接中的信息。在经历了它们之后,我可以推断出 4 种可能的方法来做到这一点:

  1. 使用机械化。见链接 1
  2. 使用 Net::HTTP 从您的控制器发出一个 post 请求。请参阅链接 2 - 3(第 3 个答案)。
  3. 发布包含散列或数组的表单数据。见链接 4 - 7
  4. 将隐藏字段添加到将包含额外数据的表单。见链接 8
  5. 使用参数合并模式,即 Link 9

使用 Ruby/Rails 以编程方式将表单数据发布到另一个站点

将 POST 数据从 rails 中的控制器提交到另一个网站

从 Rails 控制器发布并重定向到外部站点?

http://rails.nuvvo.com/lesson/6371-action-controller-parameters

http://www.developer.com/lang/rubyrails/article.php/3804081/Techniques-to-Pass-and-Read-URL-Parameters-Using-Rails.htm

http://guides.rubyonrails.org/action_controller_overview.htm(第 3.1 节哈希和数组参数,然后第 8 节请求伪造保护)

Rails:如何让表单提交记录数组?

Ruby on Rails:以表单提交数组

http://api.rubyonrails.org/classes/ActionView/Helpers/FormHelper.html#method-i-hidden_​​field

发送查询字符串参数作为表单帖子的一部分

于 2013-01-08T22:19:53.483 回答
0

您需要确保event_data正确转义参数才能执行此操作。我很确定呼叫post_form已经为您完成了这项工作。

params["app_id"] = 123
params["adv_id"] = 345
params["event"] = 'sale'
params["event_data"] = '"amt=30_USD;user_id=204050"'
Net::HTTP.post_form(URI.parse("http://notify.tapsense.com/ads/ping"), params)

那应该或多或少为你做。

于 2013-01-08T20:53:37.973 回答