aboutsummaryrefslogtreecommitdiffstats
path: root/doc/src/manual/gun_data.asciidoc
blob: 0176707be32e7eb5f3e340f15cde95f23e798fe9 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
= gun_data(3)

== Name

gun_data - Response body

== Description

[source,erlang]
----
{gun_data, ConnPid, StreamRef, IsFin, Data}

ConnPid   :: pid()
StreamRef :: reference()
IsFin     :: fin | nofin
Data      :: binary()
----

Response body.

This message informs the relevant process that the server
sent a all or part of the body for the response to the
original request.

A data message is always preceded by a response message.

The response body may be terminated either by a data
message with the flag `fin` set or by a
link:man:gun_trailers(3)[gun_trailers(3)] message.

== Elements

ConnPid::

The pid of the Gun connection process.

StreamRef::

Identifier of the stream for the original request.

IsFin::

Whether this message terminates the response.

Data::

All or part of the response body.

== Changelog

* *1.0*: Message introduced.

== Examples

.Receive a gun_data message in a gen_server
[source,erlang]
----
handle_info({gun_data, ConnPid, _StreamRef,
             _IsFin, _Data},
            State=#state{conn_pid=ConnPid}) ->
    %% Do something.
    {noreply, State}.
----

== See also

link:man:gun(3)[gun(3)],
link:man:gun:get(3)[gun:get(3)],
link:man:gun:head(3)[gun:head(3)],
link:man:gun:patch(3)[gun:patch(3)],
link:man:gun:post(3)[gun:post(3)],
link:man:gun:put(3)[gun:put(3)],
link:man:gun:delete(3)[gun:delete(3)],
link:man:gun:options(3)[gun:options(3)],
link:man:gun:request(3)[gun:request(3)],
link:man:gun_response(3)[gun_response(3)],
link:man:gun_trailers(3)[gun_trailers(3)]