class Http Create = Win32API.new('AHttp.dll', 'Create', 'pppp', 'l') Query = Win32API.new('AHttp.dll', 'Query', 'l', 'i') Retrieve = Win32API.new('AHttp.dll', 'Retrieve', 'lp', 'i') Close = Win32API.new('AHttp.dll', 'Close', 'l', 'l') INVALID = 0; SUCCESS = 1; FAILURE = 2; PENDING = 3 def initialize(server, action, method, data="") @token = Create.call(server, action, method, data) end def query Query.call(@token) end def retrieve if query == SUCCESS length = Retrieve.call(@token, 0) buffer = "\0" * length Retrieve.call(@token, buffer) return buffer end # or nil end def close Close.call(@token) end end