aboutsummaryrefslogtreecommitdiffstats
path: root/doc/src/manual/gun.data.asciidoc
blob: 9c65d34829d0eb6d45ef0565a666a4b6745b2353 (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
= gun:data(3)

== Name

gun:data - Stream the body of a request

== Description

[source,erlang]
----
data(ConnPid, StreamRef, IsFin, Data) -> ok

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

Stream the body of a request.

This function can only be used if the original request
had headers indicating that a body would be streamed.

All calls to this function must use the `nofin` flag
except for the last which must use `fin` to indicate
the end of the request body.

Empty data is allowed regardless of the value of `IsFin`.
Gun may or may not send empty data chunks, however.

== Arguments

ConnPid::

The pid of the Gun connection process.

StreamRef::

Identifier of the stream for the original request.

IsFin::

Whether this message terminates the request.

Data::

All or part of the response body.

== Return value

The atom `ok` is returned.

== Changelog

* *1.0*: Function introduced.

== Examples

.Stream the body of a request
[source,erlang]
----
StreamRef = gun:put(ConnPid, "/lang/fr_FR/hello", [
    {<<"content-type">>, <<"text/plain">>}
]).
gun:data(ConnPid, StreamRef, nofin, <<"Bonjour !\n">>).
gun:data(ConnPid, StreamRef, fin, <<"Bonsoir !\n">>).
----

== See also

link:man:gun(3)[gun(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:request(3)[gun:request(3)]