Domanda

Voglio recuperare i dati da un sito Web che utilizza i dati JSON per impostare i parametri di ricerca personalizzati che sembrano essere richiesti tramite Ajax.I dati trasmessi si presentano sotto XHR-> Richiesta Payload in Firebug:

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

Il sito non trasmette alcun parametro post ma solo questi dati codificati JSON per applicare i criteri di ricerca.Passare questi dati come parametri post con meccanizzazione non funziona.

Come possono essere trasmessi questi dati usando meccanizzarsi o faraday in rubino su rotaie?

È stato utile?

Soluzione

con meccanizzarti fare:

agent.post url, data.to_json, {'Content-Type' => 'application/json'}
.

Altri suggerimenti

Ho capito un modo per farlo:

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
.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top