'Creates a AsyncHTTPClient.
Only a single AsyncHTTPClient instance exists per IOLoop
in order to provide limitations on the number of pending connections.
force_instance=True may be used to suppress this behavior.
max_clients is the number of concurrent requests that can be
in progress.  Note that this arguments are only used when the
client is first created, and will be ignored when an existing
client is reused.
hostname_mapping is a dictionary mapping hostnames to IP addresses.
It can be used to make local DNS changes when modifying system-wide
settings like /etc/hosts is not possible or desirable (e.g. in
unittests).
max_buffer_size is the number of bytes that can be read by IOStream. It
defaults to 100mb.'

def initialize(self, io_loop, max_clients=10, hostname_mapping=None, max_buffer_size=104857600, resolver=None, defaults=None, max_header_size=None):

    super(SimpleAsyncHTTPClient, self).initialize(io_loop, defaults=defaults)
    self.max_clients = max_clients
    self.queue = collections.deque()
    self.active = {}
    self.waiting = {}
    self.max_buffer_size = max_buffer_size
    self.max_header_size = max_header_size
    if resolver:
        self.resolver = resolver
        self.own_resolver = False
    else:
        self.resolver = Resolver(io_loop=io_loop)
        self.own_resolver = True
    if (hostname_mapping is not None):
        self.resolver = OverrideResolver(resolver=self.resolver, mapping=hostname_mapping)
    self.tcp_client = TCPClient(resolver=self.resolver, io_loop=io_loop)
