Lire les données d'en-tête dans Ruby on Rails


94

Je crée une API où le jeton d'accès pour la connexion Facebook sera envoyé via les données d'en-tête.

Comment lire ces données depuis l'en-tête?


3
Mots clés de recherche: "demande d'en-tête de rails".
— Sergio Tulentsev

15
@SergioTulentsev C'est exactement ce qui m'a conduit ici.
— YoTengoUnLCD

Réponses:


149
request.headers["Content-Type"] # => "text/plain"

remplacez "Content-Type" par le nom de l'en-tête que vous souhaitez lire.

Mise à jour pour Rails 4.2

Il y a 2 façons de les obtenir dans Rails 4.2: Ancienne méthode (fonctionne toujours):

request.headers["Cookie"]

Nouvelle façon:

request.headers["HTTP_COOKIE"]

Pour obtenir un hachage avec tous les en-têtes de la requête.

request.headers

21

Rails attache maintenant HTTP_ à l'en-tête et le convertit en majuscules pour qu'il soit maintenant:

request.headers["HTTP_CONTENT_TYPE"]

J'ai de l'argent qui dit que le rack ne fonctionne pas. pourrait se tromper tho
— j_mcnally

-7

Pour obtenir le hachage des en- têtes http réels, utilisez le @_headerscontrôleur.


4
Accéder directement à des variables d'instance comme celle-ci est une très mauvaise forme. Ce trait de soulignement est là pour vous rappeler de ne pas faire cela.
— tadman
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.