class AWS::Core::Http::CurbHandler

def make_easy_handle request, response, thread = nil

def make_easy_handle request, response, thread = nil
  url = request.use_ssl? ? 
    "https://#{request.host}:443#{request.uri}" :
    "http://#{request.host}#{request.uri}"
  curl = Curl::Easy.new(url)
  curl.headers = request.headers
  if proxy = request.proxy_uri
    curl.proxy_url = proxy.to_s
    curl.proxy_port = proxy.port
  end
  curl.on_header {|header_data|
    name, value = header_data.strip.split(/:\s+/, 2)
    response.headers[name] = value
    header_data.length
  }
  case request.http_method
  when 'GET'
    # ....
  when 'HEAD'
    curl.head = true
  when 'PUT'
    curl.put_data = request.body
  when 'POST'
    curl.post_body = request.body
  when 'DELETE'
    curl.delete = true
  end
  curl.on_complete do
    response.body = curl.body_str
    response.status = curl.response_code
    thread.run if thread
  end
  curl
end