Class: PxModule::PxHttpClient
- Inherits:
-
Object
- Object
- PxModule::PxHttpClient
- Includes:
- Concurrent::Async
- Defined in:
- lib/perimeterx/utils/px_http_client.rb
Instance Attribute Summary collapse
-
#px_client ⇒ Object
Returns the value of attribute px_client.
-
#px_config ⇒ Object
Returns the value of attribute px_config.
Instance Method Summary collapse
- #get(url, headers) ⇒ Object
-
#initialize(px_config) ⇒ PxHttpClient
constructor
A new instance of PxHttpClient.
-
#post(path, body, headers, api_timeout = 1, connection_timeout = 1) ⇒ Object
- Runs a POST command to Perimeter X servers Params:
path
- string containing uri
body
- hash object, containing the request body, must be converted to json format
headers
- hash object, hold headers
api_timeout
- int, sets the timeout for a request
connection_timeout
-
int, sets the timeout for opening a connection.
- int, sets the timeout for a request
- hash object, hold headers
- hash object, containing the request body, must be converted to json format
- string containing uri
- Runs a POST command to Perimeter X servers Params:
- #post_xhr(url, body, headers) ⇒ Object
Constructor Details
#initialize(px_config) ⇒ PxHttpClient
Returns a new instance of PxHttpClient.
13 14 15 16 17 |
# File 'lib/perimeterx/utils/px_http_client.rb', line 13 def initialize(px_config) @px_config = px_config @logger = px_config[:logger] @logger.debug("PxHttpClient[initialize]: HTTP client is being initilized with base_uri: #{px_config[:backend_url]}") end |
Instance Attribute Details
#px_client ⇒ Object
Returns the value of attribute px_client.
11 12 13 |
# File 'lib/perimeterx/utils/px_http_client.rb', line 11 def px_client @px_client end |
#px_config ⇒ Object
Returns the value of attribute px_config.
10 11 12 |
# File 'lib/perimeterx/utils/px_http_client.rb', line 10 def px_config @px_config end |
Instance Method Details
#get(url, headers) ⇒ Object
80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 |
# File 'lib/perimeterx/utils/px_http_client.rb', line 80 def get(url, headers) s = Time.now begin @logger.debug("PxHttpClient[get]: sending get request to #{url} with headers {#{headers.to_json()}}") #set url uri = URI(url) req = Net::HTTP::Get.new(uri) # set headers headers.each do |key, value| req[key] = value end # send request response = Net::HTTP.start(uri.hostname, uri.port) {|http| http.request(req) } ensure e = Time.now @logger.debug("PxHttpClient[get]: runtime: #{(e-s) * 1000.0}") end return response end |
#post(path, body, headers, api_timeout = 1, connection_timeout = 1) ⇒ Object
Runs a POST command to Perimeter X servers Params:
path
-
string containing uri
body
-
hash object, containing the request body, must be converted to json format
headers
-
hash object, hold headers
api_timeout
-
int, sets the timeout for a request
connection_timeout
-
int, sets the timeout for opening a connection
27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
# File 'lib/perimeterx/utils/px_http_client.rb', line 27 def post(path, body, headers, api_timeout = 1, connection_timeout = 1) s = Time.now begin @logger.debug("PxHttpClient[post]: posting to #{path} headers {#{headers.to_json()}} body: {#{body.to_json()}} ") response = Typhoeus.post( "#{px_config[:backend_url]}#{path}", headers: headers, body: body.to_json, timeout: api_timeout, connecttimeout: connection_timeout ) if response.timed_out? @logger.warn('PerimeterxS2SValidator[verify]: request timed out') return false end ensure e = Time.now @logger.debug("PxHttpClient[post]: runtime: #{(e-s) * 1000.0}") end return response end |
#post_xhr(url, body, headers) ⇒ Object
50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 |
# File 'lib/perimeterx/utils/px_http_client.rb', line 50 def post_xhr(url, body, headers) s = Time.now begin @logger.debug("PxHttpClient[post]: sending xhr post request to #{url} with headers {#{headers.to_json()}}") #set url uri = URI(url) req = Net::HTTP::Post.new(uri) # set body req.body=body # set headers headers.each do |key, value| req[key] = value end # send request response = Net::HTTP.start(uri.hostname, uri.port) {|http| http.request(req) } ensure e = Time.now @logger.debug("PxHttpClient[get]: runtime: #{(e-s) * 1000.0}") end return response end |