# nng_http_req_add_header(3http) Manual Page

## NAME

nng_http_req_add_header - add HTTP request header

## SYNOPSIS

    #include <nng/nng.h>
    #include <nng/supplemental/http/http.h>

    int nng_http_req_add_header(nng_http_req *req, const char *key,
        const char *val);

## DESCRIPTION

The `nng_http_req_add_header()` adds an HTTP header for the request req and the key to the val. The key and val are copied.

If a header with the value of key already exists, then a comma and whitespace separate are appended to it, followed by val.

If no such header already exists, then one is created with the value val.

| The HTTP specification requires that duplicate headers be treated identically to a single header with multiple comma-delimited values.

| See `nng_http_req_set_header()` if replacement of an existing header rather than appending to it is desired.

The value of key is case insensitive, and should not include the final colon in an HTTP header. For example, specifying `Host` or `hOSt` are equivalent, whereas the value `Host:` is not a legal header key.

## RETURN VALUES

This function returns 0 on success, and non-zero otherwise.

## ERRORS

`NNG_ENOMEM` | Insufficient memory to perform the operation.
`NNG_ENOTSUP` | No support for HTTP in the library.

## SEE ALSO

nng_http_req_alloc(3http), nng_http_req_del_header(3http), nng_http_req_get_header(3http), nng_http_req_set_header(3http), nng(7)