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?


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

21

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

request.headers["HTTP_CONTENT_TYPE"]

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.


4
Der direkte Zugriff auf solche Instanzvariablen ist eine wirklich schlechte Form. Dieser Unterstrich soll Sie daran erinnern, dies nicht zu tun.
Tadman
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.