Lesen von Header-Daten in Ruby on Rails

93

Ich mache eine API, in der im Zugriffstoken für Facebook die Anmeldung über Headerdaten gesendet wird.

Wie lese ich diese Daten aus dem Header?

abhilash
quelle
3
Suchbegriffe: "Rails Header Request".
Sergio Tulentsev
15
@SergioTulentsev Genau das hat mich hierher geführt.
YoTengoUnLCD

Antworten:

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

Ersetzen Sie "Content-Type" durch den Namen des Headers, den Sie lesen möchten.

Update für Rails 4.2

Es gibt zwei Möglichkeiten, sie in Rails 4.2 zu bekommen: Alter Weg (funktioniert immer noch):

request.headers["Cookie"]

Neuer Weg:

request.headers["HTTP_COOKIE"]

Um einen Hash mit allen Headern der Anfrage zu erhalten.

request.headers
Eduard
quelle
21

Rails fügt jetzt HTTP_ an den Header an und konvertiert es in alle Großbuchstaben.

request.headers["HTTP_CONTENT_TYPE"]
Cubsker
quelle
Ich habe Geld, das sagt, Rack macht dies nicht Schienen. könnte falsch sein,
14.
-7

Um Hash der tatsächlichen http- Header zu erhalten, verwenden Sie @_headersin Controller.

BitOfUniverse
quelle
4
Der direkte Zugriff auf solche Instanzvariablen ist eine wirklich schlechte Form. Dieser Unterstrich soll Sie daran erinnern, dies nicht zu tun.
Tadman