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?
Vous devrez définir les en-têtes suivants dans votre message.
Content-Type: application/json
Accept: application/json
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