Name
gun:post - Process the enclosed representation according to a resource's own semantics
Description
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 gun:data(3).
The function post/4,5
sends the entire request, including the request body, immediately. It is therefore not possible to use 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
StreamRef = gun:post(ConnPid, "/search",
[{<<"content-type">>, <<"application/x-www-form-urlencoded">>}],
<<"q=nine%20nines">>).
Post to a resource in multiple calls
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
StreamRef = gun:post(ConnPid, "/search",
[{<<"content-type">>, <<"application/x-www-form-urlencoded">>}],
<<"q=nine%20nines">>,
#{reply_to => ReplyToPid}).
See also
gun(3), gun:patch(3), gun:put(3), gun:await(3), gun:await_body(3), gun_push(3), gun_inform(3), gun_response(3), gun_data(3)