class ProxyCrawl::API
Constants
- INVALID_TOKEN
- INVALID_URL
Attributes
body[R]
original_status[R]
pc_status[R]
status_code[R]
storage_url[R]
token[R]
url[R]
Public Class Methods
new(options = {})
click to toggle source
# File lib/proxycrawl/api.rb, line 14 def initialize(options = {}) raise INVALID_TOKEN if options[:token].nil? @token = options[:token] end
Public Instance Methods
get(url, options = {})
click to toggle source
# File lib/proxycrawl/api.rb, line 20 def get(url, options = {}) raise INVALID_URL if url.empty? uri = prepare_uri(url, options) response = Net::HTTP.get_response(uri) prepare_response(response, options[:format]) self end
post(url, data, options = {})
click to toggle source
# File lib/proxycrawl/api.rb, line 32 def post(url, data, options = {}) raise INVALID_URL if url.empty? uri = prepare_uri(url, options) http = Net::HTTP.new(uri.host, uri.port) http.use_ssl = true content_type = options[:post_content_type].to_s.include?('json') ? { 'Content-Type': 'text/json' } : nil request = Net::HTTP::Post.new(uri.request_uri, content_type) if options[:post_content_type].to_s.include?('json') request.body = data.to_json else request.set_form_data(data) end response = http.request(request) prepare_response(response, options[:format]) self end
Private Instance Methods
base_url()
click to toggle source
# File lib/proxycrawl/api.rb, line 60 def base_url 'https://api.proxycrawl.com' end
prepare_response(response, format)
click to toggle source
# File lib/proxycrawl/api.rb, line 71 def prepare_response(response, format) res = format == 'json' || base_url.include?('/scraper') ? JSON.parse(response.body) : response @original_status = res['original_status'].to_i @pc_status = res['pc_status'].to_i @url = res['url'] @storage_url = res['storage_url'] @status_code = response.code.to_i @body = response.body end
prepare_uri(url, options)
click to toggle source
# File lib/proxycrawl/api.rb, line 64 def prepare_uri(url, options) uri = URI(base_url) uri.query = URI.encode_www_form({ token: @token, url: url }.merge(options)) uri end