= nng_http_req_set_data(3http) // // Copyright 2018 Staysail Systems, Inc. // Copyright 2018 Capitar IT Group BV // // This document is supplied under the terms of the MIT License, a // copy of which should be located in the distribution where this // file was obtained (LICENSE.txt). A copy of the license may also be // found online at https://opensource.org/licenses/MIT. // == NAME nng_http_req_set_data - set HTTP request body == SYNOPSIS [source, c] ---- #include #include int nng_http_req_set_data(nng_http_req *req, const void *body, size_t size); ---- == DESCRIPTION The `nng_http_req_set_data()` sets the HTTP body associated with the request _req_ to _body_, and the size of the body to _size_. This body data will be automatically sent with the request when it is sent using xref:nng_http_conn_write_req.3http.adoc[`nng_http_conn_write_req()`]. This also updates the relevant `Content-Length` header of _req_. NOTE: The current framework does not support sending data via chunked transfer-encoding. The _body_ is *not* copied, and the caller must ensure that it is available until the _req_ is deallocated. TIP: To have a local copy allocated with _req_ that will be automatically deallocated when _req_ is freed, see xref:nng_http_req_copy_data.3http.adoc[`nng_http_req_copy_data()`]. TIP: It is a good idea to also set the `Content-Type` header. == RETURN VALUES This function returns 0 on success, and non-zero otherwise. == ERRORS [horizontal] `NNG_ENOMEM`:: Insufficient memory to perform the operation. `NNG_ENOTSUP`:: No support for HTTP in the library. == SEE ALSO [.text-left] xref:nng_http_conn_write_req.3http.adoc[nng_http_conn_write_req(3http)], xref:nng_http_req_alloc.3http.adoc[nng_http_req_alloc(3http)], xref:nng_http_req_copy_data.3http.adoc[nng_http_req_copy_data(3http)], xref:nng_http_req_set_header.3http.adoc[nng_http_req_set_header(3http)], xref:nng.7.adoc[nng(7)]