Get all the headers matching kind from the request.
The iterator callback is invoked once for each header, with iterator_cls as first argument. After version 0.9.19, the headers are iterated in the same order as they were received from the network; previous versions iterated over the headers in reverse order.
MHD_get_connection_valuesreturns the number of entries iterated over; this can be less than the number of headers if, while iterating, iterator returns
iterator can be
NULL: in this case this function just counts and returns the number of headers.
In the case of
MHD_GET_ARGUMENT_KIND, the value argument will be
NULLif the URL contained a key without an equals operator. For example, for a HTTP request to the URL “http://foo/bar?key”, the value argument is
NULL; in contrast, a HTTP request to the URL “http://foo/bar?key=”, the value argument is the empty string. The normal case is that the URL contains “http://foo/bar?key=value” in which case value would be the string “value” and key would contain the string “key”.
This function can be used to append an entry to the list of HTTP headers of a connection (so that the
MHD_get_connection_values functionwill return them – and the MHD PostProcessor will also see them). This maybe required in certain situations (see Mantis #1399) where (broken) HTTP implementations fail to supply values needed by the post processor (or other parts of the application).
This function MUST only be called from within the MHD_AccessHandlerCallback (otherwise, access maybe improperly synchronized). Furthermore, the client must guarantee that the key and value arguments are 0-terminated strings that are NOT freed until the connection is closed. (The easiest way to do this is by passing only arguments to permanently allocated strings.).
connection is the connection for which the entry for key of the given kind should be set to the given value.
The function returns
MHD_NOif the operation could not be performed due to insufficient memory and
Get a particular header value. If multiple values match the kind, return one of them (the “first”, whatever that means). key must reference a zero-terminated ASCII-coded string representing the header to look for: it is compared against the headers using
strcasecmp(), so case is ignored. A value of
NULLfor key can be used to lookup 'trailing' values without a key, for example if a URI is of the form “http://example.com/?trailer”, a key of
NULLcan be used to access “tailer" The function returns
NULLif no matching item was found.