#coding: utf-8 require 'rest_client' module Ns class Client #delegate :new, :get, :post, :to=>RestClient::Resource TODO ?? def self.get(url = '', params = {}) #params TODO request('get', url, params) end def self.post(url = '', params = {}) request('post', url, params) end def self.put(url = '', params = {}) request('put', url, params) end def self.delete() end def self.request(action = 'get', url = '', data_params = {}) #TODO 网路异常处理 #use RestClient now json_response = RestClient.send(action, url, :data=>data_params) result = unpack(json_response) if result.ok? return result.data.symbolize_keys if result.data.is_a?(Hash) result.data else raise ResultError.new(result) end end def self.unpack(json_response_str = nil) Result.new(JSON.parse(json_response_str)) end end end