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.