gun:await_body - Wait for the complete response body


await_body(ConnPid, StreamRef)
    -> await_body(ConnPid, StreamRef, 5000, MonitorRef)

await_body(ConnPid, StreamRef, MonitorRef)
    -> await_body(ConnPid, StreamRef, 5000, MonitorRef)

await_body(ConnPid, StreamRef, Timeout)
    -> await_body(ConnPid, StreamRef, Timeout, MonitorRef)

await_body(ConnPid, StreamRef, Timeout, MonitorRef)
    -> {ok, Body} | {ok, Body, Trailers} | {error, Reason}

ConnPid    :: pid()
StreamRef  :: gun:stream_ref()
MonitorRef :: reference()
Timeout    :: timeout()
Body       :: binary()
Trailers   :: [{binary(), binary()}]
Reason     :: {stream_error | connection_error | down, any()}
            | timeout

Wait for the complete response body.



The pid of the Gun connection process.


Identifier of the stream for the original request.


How long to wait for each message, in milliseconds.


Monitor for the Gun connection process.

A monitor is automatically created for the duration of this call when one is not provided.

Return value

The body is returned, possibly with trailers if the request contained a te: trailers header. Error tuples may also be returned when a timeout or an error occur.


  • 2.0: The error tuple type now includes the type of error.
  • 1.0: Function introduced.


Wait for the complete response body
StreamRef = gun:get(ConnPid, "/articles", [
    {<<"accept">>, <<"text/html;q=1.0, application/xml;q=0.1">>}
{response, nofin, 200, _Headers} = gun:await(ConnPid, StreamRef).
{ok, _Body} = gun:await_body(ConnPid, StreamRef).

See also

gun(3), gun:get(3), gun:head(3), gun:options(3), gun:patch(3), gun:post(3), gun:put(3), gun:delete(3), gun:headers(3), gun:request(3), gun:await(3)

Gun 2.0 Function Reference


Version select

Like my work? Donate!

Donate to Loïc Hoguin because his work on Cowboy, Ranch, Gun and 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.