= nng_http_req_copy_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_copy_data - copy HTTP request body == SYNOPSIS [source, c] ---- #include #include int nng_http_req_copy_data(nng_http_req *req, const void *body, size_t size); ---- == DESCRIPTION The `nng_http_req_copy_data()` makes a copy of _body_ (of size __size__) and sets the HTTP body for the request _req_ to it. The copy will be deallocated automatically when _req_ is freed. The copied 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. TIP: To avoid copying data, the xref:nng_http_req_set_data.3http.adoc[`nng_http_req_set_data()`] may be used instead. 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_set_data.3http.adoc[nng_http_req_set_data(3http)], xref:nng_http_req_set_header.3http.adoc[nng_http_req_set_header(3http)], xref:nng.7.adoc[nng(7)]