class_docstr: Non-blocking HTTP client with no external dependencies.
  
  This class implements an HTTP 1.1 client on top of Tornado's IOStreams.
  Some features found in the curl-based AsyncHTTPClient are not yet
  supported.  In particular, proxies are not supported, connections
  are not reused, and callers cannot select the network interface to be
  used.
  
  This implementation supports the following arguments, which can be passed
  to ``configure()`` to control the global singleton, or to the constructor
  when ``force_instance=True``.
  
  ``max_clients`` is the number of concurrent requests that can be
  in progress; when this limit is reached additional requests will be
  queued. Note that time spent waiting in this queue still counts
  against the ``request_timeout``.
  
  ``defaults`` is a dict of parameters that will be used as defaults on all
  `.HTTPRequest` objects submitted to this client.
  
  ``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). ``resolver`` is similar, but using the `.Resolver` interface
  instead of a simple mapping.
  
  ``max_buffer_size`` (default 100MB) is the number of bytes
  that can be read into memory at once. ``max_body_size``
  (defaults to ``max_buffer_size``) is the largest response body
  that the client will accept.  Without a
  ``streaming_callback``, the smaller of these two limits
  applies; with a ``streaming_callback`` only ``max_body_size``
  does.
  
  .. versionchanged:: 4.2
      Added the ``max_body_size`` argument.
class_docstr_tok: ["Non-blocking","HTTP","client","with","no","external","dependencies",".","This","class","implements","an","HTTP","1.1","client","on","top","of","Tornado","'s","IOStreams",".","Some","features","found","in","the","curl-based","AsyncHTTPClient","are","not","yet","supported",".","In","particular",",","proxies","are","not","supported",",","connections","are","not","reused",",","and","callers","can","not","select","the","network","interface","to","be","used",".","This","implementation","supports","the","following","arguments",",","which","can","be","passed","to","``","configure","(",")","``","to","control","the","global","singleton",",","or","to","the","constructor","when","``","force_instance=True","``",".","``","max_clients","``","is","the","number","of","concurrent","requests","that","can","be","in","progress",";","when","this","limit","is","reached","additional","requests","will","be","queued",".","Note","that","time","spent","waiting","in","this","queue","still","counts","against","the","``","request_timeout","``",".","``","defaults","``","is","a","dict","of","parameters","that","will","be","used","as","defaults","on","all","`",".HTTPRequest","`","objects","submitted","to","this","client",".","``","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",")",".","``","resolver","``","is","similar",",","but","using","the","`",".Resolver","`","interface","instead","of","a","simple","mapping",".","``","max_buffer_size","``","(","default","100MB",")","is","the","number","of","bytes","that","can","be","read","into","memory","at","once",".","``","max_body_size","``","(","defaults","to","``","max_buffer_size","``",")","is","the","largest","response","body","that","the","client","will","accept",".","Without","a","``","streaming_callback","``",",","the","smaller","of","these","two","limits","applies",";","with","a","``","streaming_callback","``","only","``","max_body_size","``","does",".","..","versionchanged",":",":","4.2","Added","the","``","max_body_size","``","argument","."]
code: def close(self) -> None:
      super().close()
      if self.own_resolver:
          self.resolver.close()
      self.tcp_client.close()
  
imports: from tornado.escape import _unicode
  from tornado import gen, version
  from tornado.httpclient import HTTPResponse, HTTPError, AsyncHTTPClient, main, _RequestProxy, HTTPRequest
  from tornado import httputil
  from tornado.http1connection import HTTP1Connection, HTTP1ConnectionParameters
  from tornado.ioloop import IOLoop
  from tornado.iostream import StreamClosedError, IOStream
  from tornado.netutil import Resolver, OverrideResolver, _client_ssl_defaults, is_valid_ip
  from tornado.log import gen_log
  from tornado.tcpclient import TCPClient
  import base64
  import collections
  import copy
  import functools
  import re
  import socket
  import ssl
  import sys
  import time
  from io import BytesIO
  import urllib.parse
  from typing import Dict, Any, Callable, Optional, Type, Union
  from types import TracebackType
  import typing
label_desc: Use image node_id 2 for calling the SimpleAsyncHTTPClient obj's underlying member method code with example usage: obj.close() without return types