class_docstr: An non-blocking HTTP client.
  
  Example usage::
  
      async def f():
          http_client = AsyncHTTPClient()
          try:
              response = await http_client.fetch("http://www.google.com")
          except Exception as e:
              print("Error: %s" % e)
          else:
              print(response.body)
  
  The constructor for this class is magic in several respects: It
  actually creates an instance of an implementation-specific
  subclass, and instances are reused as a kind of pseudo-singleton
  (one per `.IOLoop`). The keyword argument ``force_instance=True``
  can be used to suppress this singleton behavior. Unless
  ``force_instance=True`` is used, no arguments should be passed to
  the `AsyncHTTPClient` constructor. The implementation subclass as
  well as arguments to its constructor can be set with the static
  method `configure()`
  
  All `AsyncHTTPClient` implementations support a ``defaults``
  keyword argument, which can be used to set default values for
  `HTTPRequest` attributes.  For example::
  
      AsyncHTTPClient.configure(
          None, defaults=dict(user_agent="MyUserAgent"))
      # or with force_instance:
      client = AsyncHTTPClient(force_instance=True,
          defaults=dict(user_agent="MyUserAgent"))
  
  .. versionchanged:: 5.0
     The ``io_loop`` argument (deprecated since version 4.1) has been removed.
class_docstr_tok: ["An","non-blocking","HTTP","client",".","Example","usage",":",":","async","def","f","(",")",":","http_client","=","AsyncHTTPClient","(",")","try",":","response","=","await","http_client.fetch","(","``","http",":","\/\/www.google.com","''",")","except","Exception","as","e",":","print","(","``","Error",":","%","s","''","%","e",")","else",":","print","(","response.body",")","The","constructor","for","this","class","is","magic","in","several","respects",":","It","actually","creates","an","instance","of","an","implementation-specific","subclass",",","and","instances","are","reused","as","a","kind","of","pseudo-singleton","(","one","per","`",".IOLoop","`",")",".","The","keyword","argument","``","force_instance=True","``","can","be","used","to","suppress","this","singleton","behavior",".","Unless","``","force_instance=True","``","is","used",",","no","arguments","should","be","passed","to","the","`","AsyncHTTPClient","`","constructor",".","The","implementation","subclass","as","well","as","arguments","to","its","constructor","can","be","set","with","the","static","method","`","configure","(",")","`","All","`","AsyncHTTPClient","`","implementations","support","a","``","defaults","``","keyword","argument",",","which","can","be","used","to","set","default","values","for","`","HTTPRequest","`","attributes",".","For","example",":",":","AsyncHTTPClient.configure","(","None",",","defaults=dict","(","user_agent=","''","MyUserAgent","''",")",")","#","or","with","force_instance",":","client","=","AsyncHTTPClient","(","force_instance=True",",","defaults=dict","(","user_agent=","''","MyUserAgent","''",")",")","..","versionchanged",":",":","5.0","The","``","io_loop","``","argument","(","deprecated","since","version","4.1",")","has","been","removed","."]
code: def configurable_default(cls) -> Type[Configurable]:
      from tornado.simple_httpclient import SimpleAsyncHTTPClient
  
      return SimpleAsyncHTTPClient
  
imports: import datetime
  import functools
  from io import BytesIO
  import ssl
  import time
  import weakref
  from tornado.concurrent import Future, future_set_result_unless_cancelled, future_set_exception_unless_cancelled
  from tornado.escape import utf8, native_str
  from tornado import gen, httputil
  from tornado.ioloop import IOLoop
  from tornado.util import Configurable
  from typing import Type, Any, Union, Dict, Callable, Optional, cast
label_desc: Use image node_id 2 for calling the AsyncHTTPClient obj's underlying member method code with example usage: obj.configurable_default(cls) and returns: SimpleAsyncHTTPClient