class_docstr: A blocking HTTP client.
  
  This interface is provided to make it easier to share code between
  synchronous and asynchronous applications. Applications that are
  running an `.IOLoop` must use `AsyncHTTPClient` instead.
  
  Typical usage looks like this::
  
      http_client = httpclient.HTTPClient()
      try:
          response = http_client.fetch("http://www.google.com/")
          print(response.body)
      except httpclient.HTTPError as e:
          # HTTPError is raised for non-200 responses; the response
          # can be found in e.response.
          print("Error: " + str(e))
      except Exception as e:
          # Other errors are possible, such as IOError.
          print("Error: " + str(e))
      http_client.close()
  
  .. versionchanged:: 5.0
  
     Due to limitations in `asyncio`, it is no longer possible to
     use the synchronous ``HTTPClient`` while an `.IOLoop` is running.
     Use `AsyncHTTPClient` instead.
class_docstr_tok: ["A","blocking","HTTP","client",".","This","interface","is","provided","to","make","it","easier","to","share","code","between","synchronous","and","asynchronous","applications",".","Applications","that","are","running","an","`",".IOLoop","`","must","use","`","AsyncHTTPClient","`","instead",".","Typical","usage","looks","like","this",":",":","http_client","=","httpclient.HTTPClient","(",")","try",":","response","=","http_client.fetch","(","``","http",":","\/\/www.google.com\/","''",")","print","(","response.body",")","except","httpclient.HTTPError","as","e",":","#","HTTPError","is","raised","for","non-200","responses",";","the","response","#","can","be","found","in","e.response",".","print","(","``","Error",":","``","+","str","(","e",")",")","except","Exception","as","e",":","#","Other","errors","are","possible",",","such","as","IOError",".","print","(","``","Error",":","``","+","str","(","e",")",")","http_client.close","(",")","..","versionchanged",":",":","5.0","Due","to","limitations","in","`","asyncio","`",",","it","is","no","longer","possible","to","use","the","synchronous","``","HTTPClient","``","while","an","`",".IOLoop","`","is","running",".","Use","`","AsyncHTTPClient","`","instead","."]
code: def __del__(self) -> None:
      self.close()
  
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 HTTPClient obj's underlying member method code with example usage: obj.__del__() without return types