Module: HTTPUtils
- Included in:
- ChronosEndpoint, ConsulCluster, DockerHost, MarathonEndpoint, MesosCluster
- Defined in:
- lib/panteras_api/http_utils.rb
Instance Method Summary collapse
- #construct_uri(url) ⇒ Object
- #get_response_with_redirect(host, request_uri, port, user = '', passwd = '') ⇒ Object
- #to_j(response) ⇒ Object
- #valid_url(url) ⇒ Object
Instance Method Details
#construct_uri(url) ⇒ Object
47 48 49 50 |
# File 'lib/panteras_api/http_utils.rb', line 47 def construct_uri(url) raise Error::BadURLError unless (valid_url(url)) return URI.parse(url) end |
#get_response_with_redirect(host, request_uri, port, user = '', passwd = '') ⇒ Object
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/panteras_api/http_utils.rb', line 8 def get_response_with_redirect(host, request_uri, port, user='', passwd='') begin retries ||= 0 http = Net::HTTP::new(host, port) req = Net::HTTP.const_get('Get').new(request_uri) req.basic_auth user,passwd response = http.request(req) rescue Zlib::DataError, Zlib::BufError, Net::OpenTimeout retry if (retries += 1) < 3 rescue Exception => e raise e end if response.is_a?(Net::HTTPRedirection) begin redirect_uri = URI.parse(response.header['location']) return redirect_uri rescue SocketError => e raise e, "Error connecting to #{redirect_uri}: #{e.}" end end response end |
#to_j(response) ⇒ Object
32 33 34 35 36 37 38 |
# File 'lib/panteras_api/http_utils.rb', line 32 def to_j(response) if response.is_a? Net::HTTPResponse JSON.parse(response.body, :symbolize_names => true) elsif response.is_a? String JSON.parse(response, :symbolize_names => true) end end |
#valid_url(url) ⇒ Object
40 41 42 43 44 45 |
# File 'lib/panteras_api/http_utils.rb', line 40 def valid_url(url) if (url =~ /\A#{URI::regexp}\z/) return true end return false end |