Spec-Zone.ru › Ruby 2.3

модуль Net::HTTPHeader

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

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

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

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

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

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

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

add_field(ключ, значение) Показать исходный код
# File lib/net/http/header.rb, line 63
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 13
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
    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

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