web-dev-qa-db-fra.com

Réception POST données dans Rails 4 et lecture de request.body

Je veux envoyer une demande POST à une application Rails et la faire enregistrer et analyser le corps de la demande dans la base de données ...

Mon itinéraire côté réception est actuellement configuré comme suit:

post '/request' => 'controller#receives_data'

lorsque je poste des données sur ce contrôleur, j'utilise:

def post_it
  connection.post(uri.path, "this is data", header_with_authkey)
end

Ma méthode de contrôleur qui reçoit le message est configurée comme suit:

def receives_data
   log(request.body.read)
end

Cependant, je reçois un 422 error, unprocessable entity, et le fichier journal est toujours vide ...

Y a-t-il des en-têtes spécifiques que je dois inclure pour publier ceci dans une application Rails? Y a-t-il des configurations spécifiques que je dois inclure dans mon contrôleur ou mes itinéraires?

21
Davey

Vous devrez définir les en-têtes suivants dans votre message.

Content-Type: application/json
Accept: application/json
19
aartikriplani
request.raw_post

Lisez le corps de la demande. Ceci est utile pour les services Web qui doivent travailler directement avec des demandes brutes.

http://api.rubyonrails.org/classes/ActionDispatch/Request.html#method-i-raw_post

29
feipinghuang