Specifies the behaviour of a HTTP Client.
Sends an HTTP request.
request( method :: atom(), url :: binary(), headers :: list(), body :: iodata(), opts :: Keyword.t() ) :: {:ok, %{status: integer(), headers: [{binary(), binary()}], body: binary()}} | {:error, term()}