Ruby on Rails 5.2 - ActionDispatch::Http::Headers

वर्ग ActionDispatch :: Http :: शीर्ष लेख




ruby

वर्ग ActionDispatch :: Http :: शीर्ष लेख

जनक:
Object
शामिल मॉड्यूल:
Enumerable

पर्यावरण से अनुरोध के HTTP हेडर तक पहुंच प्रदान करता है।

env     = { "CONTENT_TYPE" => "text/plain", "HTTP_USER_AGENT" => "curl/7.43.0" }
headers = ActionDispatch::Http::Headers.from_hash(env)
headers["Content-Type"] # => "text/plain"
headers["User-Agent"] # => "curl/7.43.0"

यह भी ध्यान दें कि जब हेडर को Rack सर्वर द्वारा CGI जैसे वैरिएबल में मैप किया जाता है, तो डैश और अंडरस्कोर दोनों अंडरस्कोर में बदल जाते हैं। इस अस्पष्टता को अब इस स्तर पर हल नहीं किया जा सकता है। अंडरस्कोर और डैश दोनों की व्याख्या की जानी चाहिए जैसे कि उन्हें मूल रूप से डैश के रूप में भेजा गया था।

# GET / HTTP/1.1
# ...
# User-Agent: curl/7.43.0
# X_Custom_Header: token

headers["X_Custom_Header"] # => nil
headers["X-Custom-Header"] # => "token"

स्थिरांक

CGI_VARIABLES
HTTP_HEADER

पब्लिक क्लास के तरीके

from_hash (हैश) शो सोर्स
# File actionpack/lib/action_dispatch/http/headers.rb, line 50
def self.from_hash(hash)
  new ActionDispatch::Request.new hash
end

सार्वजनिक प्रवृत्ति के तरीके

# File actionpack/lib/action_dispatch/http/headers.rb, line 59
def [](key)
  @req.get_header env_name(key)
end

दिए गए कुंजी के मान को @env पर मैप करता है।

[] = (कुंजी, मान) स्रोत दिखाएं
# File actionpack/lib/action_dispatch/http/headers.rb, line 64
def []=(key, value)
  @req.set_header env_name(key), value
end

@Env को मैप की गई कुंजी के लिए दिया गया मान सेट करता है।

जोड़ें (कुंजी, मान) स्रोत दिखाएं
# File actionpack/lib/action_dispatch/http/headers.rb, line 69
def add(key, value)
  @req.add_header env_name(key), value
end

वैरी या एक्सेप्ट-एन्कोडिंग जैसे बहुस्तरीय हेडर के लिए एक मूल्य जोड़ें।

प्रत्येक (और ब्लॉक) दिखाएँ स्रोत
# File actionpack/lib/action_dispatch/http/headers.rb, line 95
def each(&block)
  @req.each_header(&block)
end
# File actionpack/lib/action_dispatch/http/headers.rb, line 116
def env; @req.env.dup; end
भ्रूण (कुंजी, डिफ़ॉल्ट = DEFAULT) {|| ...} स्रोत दिखाएं
# File actionpack/lib/action_dispatch/http/headers.rb, line 87
def fetch(key, default = DEFAULT)
  @req.fetch_header(env_name(key)) do
    return default unless default == DEFAULT
    return yield if block_given?
    raise KeyError, key
  end
end

दिए गए कुंजी के मान को @env पर मैप करता है।

यदि कुंजी नहीं मिली है और एक वैकल्पिक कोड ब्लॉक प्रदान नहीं किया गया है, तो KeyError अपवाद उठाता है।

यदि कोड ब्लॉक प्रदान किया गया है, तो इसे चलाया जाएगा और इसका परिणाम वापस आ जाएगा।

शामिल? (key)
उपनाम के लिए: key?
कुंजी? (कुंजी) स्रोत दिखाएँ
# File actionpack/lib/action_dispatch/http/headers.rb, line 73
def key?(key)
  @req.has_header? env_name(key)
end
के रूप में भी उपनाम: include?
मर्ज (हेडर्स_ओर_वेन) स्रोत दिखाएं
# File actionpack/lib/action_dispatch/http/headers.rb, line 101
def merge(headers_or_env)
  headers = @req.dup.headers
  headers.merge!(headers_or_env)
  headers
end

एक नया Http::Headers headers_or_env इंस्टेंस जिसमें headers_or_env की सामग्री और मूल उदाहरण है।

विलय! (headers_or_env) स्रोत दिखाएं
# File actionpack/lib/action_dispatch/http/headers.rb, line 110
def merge!(headers_or_env)
  headers_or_env.each do |key, value|
    @req.set_header env_name(key), value
  end
end

मूल आवृत्ति प्रविष्टियों में headers_or_env की सामग्री जोड़ता है; डुप्लिकेट कुंजियाँ headers_or_env से मानों के साथ ओवरराइट की headers_or_env