gun:request(3)

Name

gun:request - Perform the given request

Description

request(ConnPid, Method, Path, Headers)
    -> StreamRef

request(ConnPid, Method, Path, Headers, Body)
    -> request(ConnPid, Method, Path, Headers, Body, #{})

request(ConnPid, Method, Path, Headers, Body, ReqOpts)
    -> StreamRef

ConnPid   :: pid()
Method    :: binary()
Path      :: iodata()
Headers   :: [{binary(), iodata()}]
Body      :: iodata()
ReqOpts   :: gun:req_opts()
StreamRef :: reference()

Perform the given request.

This is a general purpose function that should only be used when other method-specific functions do not apply.

The behavior of this function varies depending on whether a body is provided.

The function request/4 expects either a content-length or content-type header to indicate that a body will be sent afterwards. Gun will assume the request has no body otherwise. The body can then be sent using gun:data(3).

The function request/5,6 sends the entire request, including the request body, immediately. It is therefore not possible to use gun:data(3) after that. You should provide a content-type header. Gun will set the content-length header automatically.

Arguments

ConnPid

The pid of the Gun connection process.

Method

Method to be used for the request.

Path

Path to the resource.

Headers

Additional request headers.

Body

Request body.

ReqOpts

Request options.

Return value

A reference that identifies the newly created stream is returned. It is this reference that must be passed in subsequent calls and will be received in messages related to this new stream.

Changelog

  • 1.0: Function introduced.

Examples

Perform a request
StreamRef = gun:request(ConnPid, <<"PUT">>,
    "/lang/fr_FR/hello",
    [{<<"content-type">>, <<"text/plain">>}],
    <<"Bonjour !">>).

See also

gun(3), gun:await(3), gun:await_body(3), gun_push(3), gun_inform(3), gun_response(3), gun_data(3)

Gun 1.2 Function Reference

Navigation

Version select

Like my work? Donate!

Donate to Loïc Hoguin because his work on Cowboy, Ranch, Gun and Erlang.mk is fantastic:

Recurring payment options are also available via GitHub Sponsors. These funds are used to cover the recurring expenses like food, dedicated servers or domain names.