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