View Source Tesla.Adapter.Mint (tesla v1.8.0)
Adapter for mint.
NOTE: The minimum supported Elixir version for mint is 1.5.0
Remember to add {:mint, "~> 1.0"}
and {:castore, "~> 0.1"}
to dependencies.
Also, you need to recompile tesla after adding :mint
dependency:
mix deps.clean tesla
mix deps.compile tesla
Examples
# set globally in config/config.exs
config :tesla, :adapter, Tesla.Adapter.Mint
# set per module
defmodule MyClient do
use Tesla
adapter Tesla.Adapter.Mint
end
# set global custom cacertfile
config :tesla, adapter: {Tesla.Adapter.Mint, cacert: ["path_to_cacert"]}
Adapter specific options:
:timeout
- Time in milliseconds, while process, will wait for mint messages. Defaults to2_000
.:body_as
- What will be returned in%Tesla.Env{}
body key. Possible values -:plain
,:stream
,:chunks
. Defaults to:plain
.:plain
- as binary.:stream
- as stream. If you don't want to close connection (because you want to reuse it later) passclose_conn: false
in adapter opts.:chunks
- as chunks. You can get response body in chunks usingTesla.Adapter.Mint.read_chunk/3
function. Processing of the chunks and checking body size must be done by yourself. Example of processing function is intest/tesla/adapter/mint_test.exs
-Tesla.Adapter.MintTest.read_body/4
. If you don't need connection later don't forget to close it withTesla.Adapter.Mint.close/1
.
:max_body
- Max response body size in bytes. Works only withbody_as: :plain
, with other settings you need to check response body size by yourself.:conn
- Opened connection with mint. Is used for reusing mint connections.:original
- Original host with port, for which reused connection was open. Needed forTesla.Middleware.FollowRedirects
. Otherwise adapter will use connection for another open host.:close_conn
- Close connection or not after receiving full response body. Is used for reusing mint connections. Defaults totrue
.:proxy
- Proxy settings. E.g.:{:http, "localhost", 8888, []}
,{:http, "127.0.0.1", 8888, []}
:transport_opts
- Keyword list of HTTP or HTTPS options passed into:gen_tcp
or:ssl
respectively by mint. See mint's docs ontransport_opts
.
Summary
Functions
Closes mint connection.
Reads chunk of the response body.
Returns {:fin, HTTP.t(), binary()}
if all body received, otherwise returns {:nofin, HTTP.t(), binary()}
.
Functions
@spec close(Mint.HTTP.t()) :: {:ok, Mint.HTTP.t()}
Closes mint connection.
@spec read_chunk(Mint.HTTP.t(), reference(), keyword()) :: {:fin, Mint.HTTP.t(), binary()} | {:nofin, Mint.HTTP.t(), binary()}
Reads chunk of the response body.
Returns {:fin, HTTP.t(), binary()}
if all body received, otherwise returns {:nofin, HTTP.t(), binary()}
.