    # File lib/fog/ninefold/compute.rb, line 96
            def request(command, params, options)
              params['response'] = "json"
              # convert params to strings for sort
              req_params = params.merge('apiKey' => @ninefold_compute_key, 'command' => command)
              req = URI.escape(req_params.sort_by{|k,v| k.to_s }.collect{|e| "#{e[0].to_s}=#{e[1].to_s}"}.join('&'))
              encoded_signature = url_escape(encode_signature(req))

              options = {
                :expects => 200,
                :method => 'GET',
                :query => "#{req}&signature=#{encoded_signature}"
              }.merge(options)

              begin
                response = @connection.request(options)
              end
              unless response.body.empty?
                # Because the response is some weird xml-json thing, we need to try and mung
                # the values out with a prefix, and if there is an empty data entry return an
                # empty version of the expected type (if provided)
                response = Fog::JSON.decode(response.body)
                if options.has_key? :response_prefix
                  keys = options[:response_prefix].split('/')
                  keys.each do |k|
                    if response[k]
                      response = response[k]
                    elsif options[:response_type]
                      response = options[:response_type].new
                      break
                    else
                    end
                  end
                  response
                else
                  response
                end
              end
            end