# `SPARQL.Client.Request`
[🔗](https://github.com/rdf-elixir/sparql_client/blob/v0.5.1/lib/sparql_client/request.ex#L1)

A struct representing a HTTP request of a SPARQL protocol operation.

For now, you won't have to deal with this struct that much.
You'll encounter it only as a member of a `SPARQL.Client.HTTPError` or when writing a custom
config function for the HTTP headers (see documentation of the configuration options for `SPARQL.Client`).

# `http_method`

```elixir
@type http_method() :: :get | :post
```

# `protocol_version`

```elixir
@type protocol_version() :: String.t()
```

# `t`

```elixir
@type t() :: %SPARQL.Client.Request{
  http_accept_header: String.t(),
  http_body: String.t() | nil,
  http_content_type_header: String.t(),
  http_headers: map(),
  http_method: http_method(),
  http_response_body: String.t(),
  http_response_content_type: String.t(),
  http_status: pos_integer(),
  result: SPARQL.Query.Result.t() | RDF.Data.Source.t(),
  sparql_endpoint: String.t(),
  sparql_graph_params: list(),
  sparql_operation_form: atom(),
  sparql_operation_payload: String.t(),
  sparql_operation_type: module(),
  sparql_protocol_version: protocol_version()
}
```

---

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