Spec-Zone.ru › Ruby 2.4

модуль Net::HTTPHeader

Модуль HTTPHeader определяет методы для чтения и записи заголовков HTTP.

Он используется в качестве миксина другими классами, чтобы обеспечить доступ к значениям заголовков HTTP как к элементам массива. В отличие от прямого доступа к массивам, HTTPHeader обеспечивает доступ по ключам, не чувствительным к регистру. Он также предоставляет методы для доступа к значениям распространённых заголовков HTTP в более удобных форматах.

Публичные методы экземпляров

[](key) Показать исходный код
# File lib/net/http/header.rb, line 37
def [](key)
  a = @header[key.downcase] or return nil
  a.join(', ')
end

Возвращает поле заголовка, соответствующее ключу, не чувствительному к регистру. Например, ключ «Content-Type» может вернуть «text/html»

[]=(key, val) Показать исходный код
# File lib/net/http/header.rb, line 43
def []=(key, val)
  unless val
    @header.delete key.downcase
    return val
  end
  set_field(key, val)
end

Устанавливает поле заголовка, соответствующее ключу, не чувствительному к регистру.

add_field(key, val) Показать исходный код
# File lib/net/http/header.rb, line 66
def add_field(key, val)
  if @header.key?(key.downcase)
    append_field_value(@header[key.downcase], val)
  else
    set_field(key, val)
  end
end
Ruby 1.8.3

Добавляет значение в поле заголовка с заданным именем, вместо того, чтобы его перезаписывать. Второй аргумент val должен быть строкой. См. также []=, [] и get_fields.

request.add_field 'X-My-Header', 'a'
p request['X-My-Header']              #=> "a"
p request.get_fields('X-My-Header')   #=> ["a"]
request.add_field 'X-My-Header', 'b'
p request['X-My-Header']              #=> "a, b"
p request.get_fields('X-My-Header')   #=> ["a", "b"]
request.add_field 'X-My-Header', 'c'
p request['X-My-Header']              #=> "a, b, c"
p request.get_fields('X-My-Header')   #=> ["a", "b", "c"]
initialize_http_header(initheader) Показать исходный код
# File lib/net/http/header.rb, line 12
def initialize_http_header(initheader)
  @header = {}
  return unless initheader
  initheader.each do |key, value|
    warn "net/http: warning: duplicated HTTP header: #{key}" if key?(key) and $VERBOSE
    if value.nil?
      warn "net/http: warning: nil HTTP header: #{key}" if $VERBOSE
    else
      value = value.strip # raise error for invalid byte sequences
      if value.count("\r\n") > 0
        raise ArgumentError, 'header field value cannot include CR/LF'
      end
      @header[key.downcase] = [value]
    end
  end
end

Ruby Core © 1993–2017 Yukihiro Matsumoto
Licensed under the Ruby License.
Ruby Standard Library © contributors
Licensed under their own licenses.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API