231: def make_request(action, params, data='')
232:
233: @http.start do
234:
235:
236: params.reject! { |key, value| value.nil? or value.empty?}
237:
238: params.merge!( {"Action" => action,
239: "SignatureVersion" => "2",
240: "SignatureMethod" => 'HmacSHA1',
241: "AWSAccessKeyId" => @access_key_id,
242: "Version" => api_version,
243: "Timestamp"=>Time.now.getutc.iso8601} )
244:
245: sig = get_aws_auth_param(params, @secret_access_key, @server)
246:
247: query = params.sort.collect do |param|
248: CGI::escape(param[0]) + "=" + CGI::escape(param[1])
249: end.join("&") + "&Signature=" + sig
250:
251: req = Net::HTTP::Post.new("/")
252: req.content_type = 'application/x-www-form-urlencoded'
253: req['User-Agent'] = "github-amazon-ec2-ruby-gem"
254:
255: response = @http.request(req, query)
256:
257:
258:
259: aws_error?(response)
260: return response
261:
262: end
263:
264: end