module Typhoeus::Response::Informations

This module contains logic about informations on a response.

Public Instance Methods

app_connect_time()
Alias for: appconnect_time
appconnect_time() click to toggle source

Return the time, in seconds, it took from the start until the SSL/SSH connect/handshake to the remote host was completed. This time is most often very near to the pre transfer time, except for cases such as HTTP pipelining where the pretransfer time can be delayed due to waits in line for the pipeline and more.

@example Get appconnect_time.

response.appconnect_time

@return [ Float ] The appconnect_time.

# File lib/typhoeus/response/informations.rb, line 124
def appconnect_time
  options[:appconnect_time] || options[:app_connect_time]
end
Also aliased as: app_connect_time
body()
Alias for: response_body
code()
Alias for: response_code
connect_time() click to toggle source

Return the time, in seconds, it took from the start until the connect to the remote host (or proxy) was completed.

@example Get connect_time.

response.connect_time

@return [ Float ] The connect_time.

# File lib/typhoeus/response/informations.rb, line 151
def connect_time
  options[:connect_time]
end
debug_info() click to toggle source
# File lib/typhoeus/response/informations.rb, line 217
def debug_info
  options[:debug_info]
end
effective_url() click to toggle source

Return the last used effective url.

@example Get effective_url.

response.effective_url

@return [ String ] The effective_url.

# File lib/typhoeus/response/informations.rb, line 186
def effective_url
  options[:effective_url]
end
headers() click to toggle source

Returns the response header.

@example Return headers.

response.headers

@return [ Typhoeus::Header ] The response header.

# File lib/typhoeus/response/informations.rb, line 227
def headers
  return Header.new(options[:headers]) if mock? && options[:headers]
  return nil if response_headers.nil? && !defined?(@headers)
  @headers ||= Header.new(response_headers.split("\r\n\r\n").last)
end
Also aliased as: headers_hash
headers_hash()
Alias for: headers
httpauth_avail() click to toggle source

Return the available http auth methods. Bitmask indicating the authentication method(s) available.

@example Get httpauth_avail.

response.httpauth_avail

@return [ Integer ] The bitmask.

# File lib/typhoeus/response/informations.rb, line 82
def httpauth_avail
  options[:httpauth_avail]
end
name_lookup_time()
Alias for: namelookup_time
namelookup_time() click to toggle source

Return the time, in seconds, it took from the start until the name resolving was completed.

@example Get namelookup_time.

response.namelookup_time

@return [ Float ] The namelookup_time.

# File lib/typhoeus/response/informations.rb, line 162
def namelookup_time
  options[:namelookup_time] || options[:name_lookup_time]
end
Also aliased as: name_lookup_time
pretransfer_time() click to toggle source

Return the time, in seconds, it took from the start until the file transfer is just about to begin. This includes all pre-transfer commands and negotiations that are specific to the particular protocol(s) involved. It does not involve the sending of the protocol- specific request that triggers a transfer.

@example Get pretransfer_time.

response.pretransfer_time

@return [ Float ] The pretransfer_time.

# File lib/typhoeus/response/informations.rb, line 140
def pretransfer_time
  options[:pretransfer_time]
end
primary_ip() click to toggle source

Return the string holding the IP address of the most recent connection done with this curl handle. This string may be IPv6 if that's enabled.

@example Get primary_ip.

response.primary_ip

@return [ String ] The primary_ip.

# File lib/typhoeus/response/informations.rb, line 198
def primary_ip
  options[:primary_ip]
end
redirect_count() click to toggle source

Return the total number of redirections that were actually followed

@example Get redirect_count.

response.redirect_count

@return [ Integer ] The redirect_count.

# File lib/typhoeus/response/informations.rb, line 209
def redirect_count
  options[:redirect_count]
end
redirect_time() click to toggle source

Return the time, in seconds, it took for all redirection steps include name lookup, connect, pretransfer and transfer before the final transaction was started. time_redirect shows the complete execution time for multiple redirections.

@example Get redirect_time.

response.redirect_time

@return [ Float ] The redirect_time.

# File lib/typhoeus/response/informations.rb, line 176
def redirect_time
  options[:redirect_time]
end
redirections() click to toggle source

Return all redirections in between as multiple responses with header.

@example Return redirections.

response.redirections

@return [ Array<Typhoeus::Response> ] The redirections

# File lib/typhoeus/response/informations.rb, line 241
def redirections
  return [] unless response_headers
  response_headers.split("\r\n\r\n")[0..-2].map{ |h| Response.new(:response_headers => h) }
end
request_size() click to toggle source
# File lib/typhoeus/response/informations.rb, line 213
def request_size
  options[:request_size]
end
response_body() click to toggle source

Return the http response body.

@example Get response_body.

response.response_body

@return [ String ] The response_body.

# File lib/typhoeus/response/informations.rb, line 36
def response_body
  options[:response_body] || options[:body]
end
Also aliased as: body
response_code() click to toggle source

Return the last received HTTP, FTP or SMTP response code. The value will be zero if no server response code has been received. Note that a proxy's CONNECT response should be read with http_connect_code and not this.

@example Get response_code.

response.response_code

@return [ Integer ] The response_code.

# File lib/typhoeus/response/informations.rb, line 69
def response_code
  (options[:response_code] || options[:code]).to_i
end
Also aliased as: code
response_headers() click to toggle source

Return the http response headers.

@example Get response_headers.

response.response_headers

@return [ String ] The response_headers.

# File lib/typhoeus/response/informations.rb, line 47
def response_headers
  return options[:response_headers] if options[:response_headers]
  if mock? && h = options[:headers]
      status_code = return_code || "200"
      reason_phrase = status_code == "200" ? "OK" : "Mock Reason Phrase"
      status_line = "HTTP/1.1 #{status_code} #{reason_phrase}"
      actual_headers = h.map{ |k,v| [k, v.respond_to?(:join) ? v.join(',') : v] }.
        map{ |e| "#{e.first}: #{e.last}" }

      [status_line, *actual_headers].join("\r\n")
  end
end
return_code() click to toggle source

Return libcurls return value.

@example Get return_code.

response.return_code

@return [ Symbol ] The return_code.

# File lib/typhoeus/response/informations.rb, line 14
def return_code
  options[:return_code]
end
return_message() click to toggle source

Returns a string describing the return.

@example Get return_message.

response.return_message

@return [ String ] The return_message.

@since 0.6.2

# File lib/typhoeus/response/informations.rb, line 26
def return_message
  Ethon::Curl.easy_strerror(return_code) if return_code
end
start_transfer_time()
Alias for: starttransfer_time
starttransfer_time() click to toggle source

Return the time, in seconds, it took from the start until the first byte is received by libcurl. This includes pretransfer time and also the time the server needs to calculate the result.

@example Get starttransfer_time.

response.starttransfer_time

@return [ Float ] The starttransfer_time.

# File lib/typhoeus/response/informations.rb, line 108
def starttransfer_time
  options[:starttransfer_time] || options[:start_transfer_time]
end
Also aliased as: start_transfer_time
time()
Alias for: total_time
total_time() click to toggle source

Return the total time in seconds for the previous transfer, including name resolving, TCP connect etc.

@example Get total_time.

response.total_time

@return [ Float ] The total_time.

# File lib/typhoeus/response/informations.rb, line 94
def total_time
  options[:total_time] || options[:time]
end
Also aliased as: time