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.