diff options
Diffstat (limited to 'doc/src/manual/gun.post.asciidoc')
-rw-r--r-- | doc/src/manual/gun.post.asciidoc | 116 |
1 files changed, 116 insertions, 0 deletions
diff --git a/doc/src/manual/gun.post.asciidoc b/doc/src/manual/gun.post.asciidoc new file mode 100644 index 0000000..e548824 --- /dev/null +++ b/doc/src/manual/gun.post.asciidoc @@ -0,0 +1,116 @@ += gun:post(3) + +== Name + +gun:post - Process the enclosed representation according to a resource's own semantics + +== Description + +[source,erlang] +---- +post(ConnPid, Path, Headers) + -> StreamRef + +post(ConnPid, Path, Headers, Body) + -> post(ConnPid, Path, Headers, Body, #{}) + +post(ConnPid, Path, Headers, Body, ReqOpts) + -> StreamRef + +ConnPid :: pid() +Path :: iodata() +Headers :: [{binary(), iodata()}] +Body :: iodata() +ReqOpts :: gun:req_opts() +StreamRef :: reference() +---- + +Process the enclosed representation according to a resource's +own semantics. + +The behavior of this function varies depending on whether +a body is provided. + +The function `post/3` expects either a content-length +or content-type header to indicate that a body will be +sent afterwards. The body can then be sent using +link:man:gun:data(3)[gun:data(3)]. + +The function `post/4,5` 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. + +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 + +.Post to a resource +[source,erlang] +---- +StreamRef = gun:post(ConnPid, "/search", + [{<<"content-type">>, <<"application/x-www-form-urlencoded">>}], + <<"q=nine%20nines">>). +---- + +.Post to a resource in multiple calls +[source,erlang] +---- +StreamRef = gun:post(ConnPid, "/search", [ + {<<"content-type">>, <<"application/x-www-form-urlencoded">>} +]). +gun:data(ConnPid, StreamRef, fin, <<"q=nine%20nines">>). +---- + +.Post to a resource with request options +[source,erlang] +---- +StreamRef = gun:post(ConnPid, "/search", + [{<<"content-type">>, <<"application/x-www-form-urlencoded">>}], + <<"q=nine%20nines">>, + #{reply_to => ReplyToPid}). +---- + +== See also + +link:man:gun(3)[gun(3)], +link:man:gun:patch(3)[gun:patch(3)], +link:man:gun:put(3)[gun:put(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)] |