# `oidcc_http_util`
[🔗](https://github.com/erlef/oidcc/blob/ee3434ddec86c14471af8f8a8f159971e654da3c
/src/oidcc_http_util.erl#L4)

HTTP Client Utilities

# `error`
*since 3.0.0* 

```elixir
-type error() ::
          {http_error, StatusCode :: pos_integer(), HttpBodyResult :: binary() | map()} |
          {use_dpop_nonce, Nonce :: binary(), HttpBodyResult :: binary() | map()} |
          invalid_content_type |
          httpc_error().
```

# `http_header`
*since 3.0.0* 

```elixir
-type http_header() :: {Field :: [byte()] | binary(), Value :: iodata()}.
```

See `httpc:request/5`.

# `httpc_error`
*since 3.0.0* 

```elixir
-type httpc_error() :: term().
```

See `httpc:request/5` for additional errors.

# `query_params`
*since 3.0.0* 

```elixir
-type query_params() :: [{unicode:chardata(), unicode:chardata() | true}].
```

See `uri_string:compose_query/1`.

# `request_opts`
*since 3.0.0* 

```elixir
-type request_opts() ::
          #{timeout => timeout(), ssl => [ssl:tls_option()], httpc_profile => atom() | pid()}.
```

See `httpc:request/5`.

## Parameters

* `timeout` - timeout for request
* `ssl` - TLS config

# `telemetry_opts`
*since 3.0.0* 

```elixir
-type telemetry_opts() :: #{topic := [atom()], extra_meta => map()}.
```

# `headers_to_cache_deadline`

```elixir
-spec headers_to_cache_deadline(Headers, DefaultExpiry) -> pos_integer()
                                   when
                                       Headers :: [{Header :: binary(), Value :: binary()}],
                                       DefaultExpiry :: non_neg_integer().
```

---

*Consult [api-reference.md](api-reference.md) for complete listing*
