Come inviare i dati di forma JSON con meccanizzare o faraday in rubino
-
23-12-2019 - |
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?
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