This module contains the logic around adding headers to libcurl.
@api private
Compose libcurl header string from key and value. Also replaces null bytes, because libcurl will complain about otherwise.
@example Compose header.
easy.compose_header('User-Agent', 'Ethon')
@param [ String ] key The header name. @param [ String ] value The header value.
@return [ String ] The composed header.
# File lib/ethon/easy/header.rb, line 53 def compose_header(key, value) Util.escape_zero_byte("#{key}: #{value}") end
Return header_list.
@example Return header_list.
easy.header_list
@return [ FFI::Pointer ] The header list.
# File lib/ethon/easy/header.rb, line 38 def header_list @header_list ||= nil end
Return headers, return empty hash if none.
@example Return the headers.
easy.headers
@return [ Hash ] The headers.
# File lib/ethon/easy/header.rb, line 15 def headers @headers ||= {} end
Set the headers.
@example Set the headers.
easy.headers = {'User-Agent' => 'ethon'}
@param [ Hash ] headers The headers.
# File lib/ethon/easy/header.rb, line 25 def headers=(headers) headers ||= {} @header_list = nil headers.each {|k, v| @header_list = Curl.slist_append(@header_list, compose_header(k,v)) } Curl.set_option(:httpheader, @header_list, handle) end