Sha256: e9f1a722ce6d69a3bdb64b8fc20e85f9fcd7feb3d5e2e388657c0fee7ba293d8
Contents?: true
Size: 1.58 KB
Versions: 1
Compression:
Stored size: 1.58 KB
Contents
require 'net/http' module OpenfireAdmin # simple http client ( cookie support ) class HttpClient # @param [URI] url admin console uri. HttpClient use its host , port and scheme def initialize(url) @cookies = {} @url = url requrie 'net/https' if @url.scheme == 'https' end # @param [Net::HTTPRequest] request # @yield [Net::HTTPResponse] def request(req) Net::HTTP.start(@url.host, @url.port) do |http| http.use_ssl = true if @url.scheme == 'https' puts "#{req.method} #{req.path}" if @verbos req['Host'] = @url.host req['Cookie'] = @cookies.map{|k,v| "#{k}=#{v}"}.join(";") unless @cookies.empty? res = http.request(req) cookies = res.get_fields('Set-Cookie') cookies.each{|str| k,v = str[0...str.index(';')].split('=') @cookies[k] = v } if cookies if @verbos puts "#{res.code} #{res.message}" res.each{|k,v| puts "#{k}=#{v}" } end def res.request @request end res.instance_variable_set(:@request, req) yield res end end # post with form data # @param [String] request path # @param [Hash<String,String>] form data # @yield [Net::HTTPResponse] def post(path, form_data) req = Net::HTTP::Post.new(path) req.set_form_data(form_data) request(req){|res| yield res } end # get path # @param [String] request path # @yield [Net::HTTPResponse] def get(path) request(Net::HTTP::Get.new(path)){|res| yield res } end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
openfire_admin-0.0.4 | lib/openfire_admin/http_client.rb |