3

我想从使用 JSON 数据设置似乎通过 AJAX 请求的自定义搜索参数的网站检索数据。传输的数据显示在 Firebug 中的 XHR->Request Payload 下:

{"filters": [{"action": "post", "filterName": "Hersteller", "ids": [269], 
"settingName": "Hersteller", "settingValue": "ValueA"}, 
{"action": "delete", "filterName": "Modelle", 
"settingName": "Modelle", "settingValue": ""}]}

该站点不传输任何 POST 参数,而仅传输此 JSON 编码数据以应用搜索条件。使用 Mechanize 将这些数据作为 post 参数传递是行不通的。

如何在 Ruby on Rails 中使用 Mechanize 或 Faraday 传输这些数据?

4

2 回答 2

11

使用机械化,您可以:

agent.post url, data.to_json, {'Content-Type' => 'application/json'}
于 2014-02-27T10:43:30.747 回答
0

我想出了一个方法来做到这一点:

connection = Faraday.new

fetched_page = connection.post do |request|
  request.url 'http://www.site.com'
  request.headers['Content-Type'] = 'application/json'
  request.body = '{"filters": [{"action": "post", "filterName": "Hersteller", "ids": [269], 
"settingName": "Hersteller", "settingValue": "ValueA"}, {"action": "delete", "filterName": "Modelle", "settingName": "Modelle", "settingValue": ""}]}'
end
于 2014-02-27T10:18:05.307 回答