tesla v1.3.3 Tesla.Adapter.Gun View Source
Adapter for gun.
Remember to add {:gun, "~> 1.3"} to dependencies.
In version 1.3 gun sends host header with port. Fixed in master branch.
Also, you need to recompile tesla after adding :gun dependency:
mix deps.clean tesla
mix deps.compile tesla
Example usage
# set globally in config/config.exs
config :tesla, :adapter, Tesla.Adapter.Gun
# set per module
defmodule MyClient do
use Tesla
adapter Tesla.Adapter.Gun
end
Adapter specific options
:timeout- Time, while process, will wait for gun messages.: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: falsein adapter opts.:chunks- as chunks. You can get response body in chunks usingTesla.Adapter.Gun.read_chunk/3function. Processing of the chunks and checking body size must be done by yourself. Example of processing function is intest/tesla/adapter/gun_test.exs-Tesla.Adapter.GunTest.read_body/4. If you don't need connection later don't forget to close it withTesla.Adapter.Gun.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 pid with gun. Is used for reusing gun 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. Example:"example.com:80".:close_conn- Close connection or not after receiving full response body. Is used for reusing gun connections. Defaults totrue.:certificates_verification- Add SSL certificates verification. erlang-certifissl_verify_fun.erl:proxy- Proxy for requests. Socks proxy are supported only for gun master branch. Examples:{'localhost', 1234},{{127, 0, 0, 1}, 1234},{:socks5, 'localhost', 1234}.
Gun options
:connect_timeout- Connection timeout.:http_opts- Options specific to the HTTP protocol.:http2_opts- Options specific to the HTTP/2 protocol.:protocols- Ordered list of preferred protocols. Defaults:[:http2, :http]- for :tls,[:http]- for :tcp.:trace- Whether to enable dbg tracing of the connection process. Should only be used during debugging. Default: false.:transport- Whether to use TLS or plain TCP. The default varies depending on the port used. Port 443 defaults to tls. All other ports default to tcp.:transport_opts- Transport options. They are TCP options or TLS options depending on the selected transport. Default:[]. Gun version: 1.3:tls_opts- TLS transport options. Default:[]. Gun from master branch.:tcp_opts- TCP trasnport options. Default:[]. Gun from master branch.:socks_opts- Options for socks. Default:[]. Gun from master branch.:ws_opts- Options specific to the Websocket protocol. Default:%{}.:compress- Whether to enable permessage-deflate compression. This does not guarantee that compression will be used as it is the server that ultimately decides. Defaults to false.:protocols- A non-empty list enables Websocket protocol negotiation. The list of protocols will be sent in the sec-websocket-protocol request header. The handler module interface is currently undocumented and must be set togun_ws_h.
Link to this section Summary
Link to this section Functions
Brutally close the gun connection.
Reads chunk of the response body.
Returns {:fin, binary()} if all body received, otherwise returns {:nofin, binary()}.