aboutsummaryrefslogtreecommitdiffstats
path: root/doc/src/manual/gun.request.asciidoc
diff options
context:
space:
mode:
Diffstat (limited to 'doc/src/manual/gun.request.asciidoc')
-rw-r--r--doc/src/manual/gun.request.asciidoc105
1 files changed, 105 insertions, 0 deletions
diff --git a/doc/src/manual/gun.request.asciidoc b/doc/src/manual/gun.request.asciidoc
new file mode 100644
index 0000000..ec169ac
--- /dev/null
+++ b/doc/src/manual/gun.request.asciidoc
@@ -0,0 +1,105 @@
+= gun:request(3)
+
+== Name
+
+gun:request - Perform the given request
+
+== Description
+
+[source,erlang]
+----
+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
+link:man:gun:data(3)[gun:data(3)].
+
+The function `request/5,6` sends the entire request, including
+the request body, immediately. It is therefore not possible
+to use link:man:gun:data(3)[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
+[source,erlang]
+----
+StreamRef = gun:request(ConnPid, <<"PUT">>,
+ "/lang/fr_FR/hello",
+ [{<<"content-type">>, <<"text/plain">>}],
+ <<"Bonjour !">>).
+----
+
+== See also
+
+link:man:gun(3)[gun(3)],
+link:man:gun:await(3)[gun:await(3)],
+link:man:gun:await_body(3)[gun:await_body(3)],
+link:man:gun_push(3)[gun_push(3)],
+link:man:gun_inform(3)[gun_inform(3)],
+link:man:gun_response(3)[gun_response(3)],
+link:man:gun_data(3)[gun_data(3)]