การอ่านข้อมูลส่วนหัวใน Ruby on Rails


98

ฉันกำลังสร้าง API ซึ่งในโทเค็นการเข้าถึงสำหรับการเข้าสู่ระบบ Facebook จะถูกส่งผ่านข้อมูลส่วนหัว

ฉันจะอ่านข้อมูลนี้จากส่วนหัวได้อย่างไร


3
คำค้นหา: "rail header request".
Sergio Tulentsev

16
@SergioTulentsev ตรงที่พาฉันมาที่นี่
YoTengoUnLCD

คำตอบ:


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

แทนที่ "Content-Type" ด้วยชื่อของส่วนหัวที่คุณต้องการอ่าน

อัปเดตสำหรับ Rails 4.2

มี 2 ​​วิธีในการรับพวกเขาใน Rails 4.2: วิธีเก่า (ยังใช้งานได้):

request.headers["Cookie"]

วิธีการใหม่:

request.headers["HTTP_COOKIE"]

เพื่อรับ Hash ที่มีส่วนหัวทั้งหมดของคำขอ

request.headers

22

ตอนนี้ Rails แนบ HTTP_ เข้ากับส่วนหัวและแปลงเป็นตัวพิมพ์ใหญ่ทั้งหมดดังนั้นตอนนี้จะเป็น:

request.headers["HTTP_CONTENT_TYPE"]

ฉันมีเงินที่บอกว่าชั้นวางไม่ใช่ราง อาจจะผิดก็ได้
j_mcnally

-7

เพื่อรับแฮชของส่วนหัวhttpจริงที่ใช้@_headersในคอนโทรลเลอร์


4
การเข้าถึงตัวแปรอินสแตนซ์เช่นนี้โดยตรงเป็นรูปแบบที่ไม่ดีจริงๆ ขีดล่างไว้เพื่อเตือนใจว่าอย่าทำเช่นนี้
tadman
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.