class ZBX::HttpClient
HttpClient
send http request for api
Public Class Methods
new(api_url=nil)
click to toggle source
# File lib/zbx/http_client.rb, line 6 def initialize api_url=nil @api_url = api_url end
Public Instance Methods
api_url=(url)
click to toggle source
# File lib/zbx/http_client.rb, line 43 def api_url= url @api_url, @uri, @http = url, nil, nil end
http()
click to toggle source
# File lib/zbx/http_client.rb, line 29 def http # Our http client. Borrowed from zabbixapi(https://github.com/vadv/zabbixapi) @http ||= Net::HTTP.new uri.host, uri.port if uri.port == 443 @http.use_ssl = true @http.verify_mode = OpenSSL::SSL::VERIFY_NONE end @http end
request(options={})
click to toggle source
# File lib/zbx/http_client.rb, line 10 def request options={} # send post request req = Net::HTTP::Post.new uri.request_uri req.add_field('Content-Type', 'application/json-rpc') req.body = options.to_json res = http.request(req) begin parsed = JSON.parse(res.body) rescue raise "Zabbix API Request Error: \n HTTP Response : #{res.inspect} \n #{res.body}" end if parsed["error"] or parsed["result"].nil? raise "Zabbix API Request Message(Bad request) : #{parsed}" end parsed['result'] end
uri()
click to toggle source
# File lib/zbx/http_client.rb, line 39 def uri @uri ||= URI.parse(@api_url) end