Packages
tesla
1.5.0
1.20.0
1.18.3
1.18.2
1.18.1
1.18.0
1.17.0
1.16.0
1.15.3
1.15.2
1.15.1
1.15.0
1.14.3
1.14.2
1.14.1
1.14.0
1.13.2
1.13.1
1.13.0
1.12.3
1.12.2
1.12.1
1.12.0
1.11.2
1.11.1
1.11.0
1.10.3
1.10.2
1.10.1
1.10.0
1.9.0
1.8.1
retired
1.8.0
1.7.0
1.6.1
1.6.0
1.5.1
1.5.0
1.4.4
1.4.3
1.4.2
1.4.1
1.4.0
1.3.3
1.3.2
1.3.1
1.3.0
1.2.1
1.2.0
1.1.0
1.0.0
1.0.0-beta.1
0.10.0
0.9.0
0.8.0
0.7.2
0.7.1
0.7.0
0.6.0
0.5.2
0.5.1
0.5.0
0.3.6
0.3.5
0.3.4
0.3.3
0.3.2
0.3.1
0.2.2
0.2.1
0.1.5
0.1.4
0.1.3
0.1.2
0.1.1
0.1.0
HTTP client library, with support for middleware and multiple adapters.
Security advisory:
This version has known vulnerabilities.
View advisories
Current section
Files
Jump to
Current section
Files
lib/tesla/middleware/keep_request.ex
defmodule Tesla.Middleware.KeepRequest do
@moduledoc """
Store request url ,body and headers into `:opts`.
## Examples
```
defmodule MyClient do
use Tesla
plug Tesla.Middleware.KeepRequest
plug Tesla.Middleware.PathParams
end
{:ok, env} = MyClient.post("/users/:user_id", "request-data", opts: [path_params: [user_id: "1234]])
env.body
# => "response-data"
env.opts[:req_body]
# => "request-data"
env.opts[:req_headers]
# => [{"request-headers", "are-safe"}, ...]
env.opts[:req_url]
# => "http://localhost:8000/users/:user_id
```
"""
@behaviour Tesla.Middleware
@impl Tesla.Middleware
def call(env, next, _opts) do
env
|> Tesla.put_opt(:req_body, env.body)
|> Tesla.put_opt(:req_headers, env.headers)
|> Tesla.put_opt(:req_url, env.url)
|> Tesla.run(next)
end
end