in lib/crawler/http_client.rb [120:155]
def get(url, headers: nil)
raise ArgumentError, 'Need a Crawler URL object!' unless url.is_a?(Crawler::Data::URL)
check_connection_pool_stats!
start_time = Time.now
http_get = HttpGet.new(url.to_s)
headers&.each do |key, value|
http_get.set_header(key, value)
end
apache_response = client.execute(http_get)
end_time = Time.now
Crawler::HttpUtils::Response.new(
apache_response:,
url:,
request_start_time: start_time,
request_end_time: end_time
)
rescue Java::JavaNet::SocketTimeoutException => e
raise Crawler::HttpUtils::SocketTimeout, e
rescue Java::JavaxNetSsl::SSLException => e
raise Crawler::HttpUtils::SslException.for_java_error(e)
rescue Java::OrgApacheHcClient5Http::ConnectTimeoutException => e
raise Crawler::HttpUtils::ConnectTimeout, e
rescue Java::OrgApacheHcCore5Http::NoHttpResponseException => e
raise Crawler::HttpUtils::NoHttpResponseError.for_proxy_host(
error: e,
proxy_host: config.http_proxy_host
)
rescue Java::JavaLang::Exception => e
raise Crawler::HttpUtils::BaseErrorFromJava, e
end