libfetch 0.0.0
A lightweight asynchronous HTTP/1.1 client library implementing a subset of the WHATWG Fetch API.
Loading...
Searching...
No Matches
URL Search Parameters

Functions for building query strings. More...

Functions

fetch_url_search_params_tfetch_url_search_params_new (void)
 Create a new URL search parameters container.
 
void fetch_url_search_params_free (fetch_url_search_params_t *params)
 Free a URL search parameters container.
 
void fetch_url_search_params_append (fetch_url_search_params_t *params, const char *name, const char *value)
 Add a parameter (allows duplicates)
 
void fetch_url_search_params_set (fetch_url_search_params_t *params, const char *name, const char *value)
 Set a parameter (replaces existing)
 
void fetch_url_search_params_delete (fetch_url_search_params_t *params, const char *name)
 Remove all parameters with the given name.
 
const char * fetch_url_search_params_get (const fetch_url_search_params_t *params, const char *name)
 Get the first parameter value with the given name.
 
bool fetch_url_search_params_has (const fetch_url_search_params_t *params, const char *name)
 Check if a parameter exists.
 
char * fetch_url_search_params_to_string (const fetch_url_search_params_t *params)
 Convert parameters to URL-encoded string.
 
fetch_url_search_params_iterator_t fetch_url_search_params_entries (const fetch_url_search_params_t *params)
 Create an iterator for URL search parameters.
 
bool fetch_url_search_params_next (fetch_url_search_params_iterator_t *iter, const char **key, const char **value)
 Get the next parameter from an iterator.
 

Detailed Description

Functions for building query strings.

Function Documentation

◆ fetch_url_search_params_append()

void fetch_url_search_params_append ( fetch_url_search_params_t * params,
const char * name,
const char * value )

Add a parameter (allows duplicates)

Parameters
paramsParameters container
nameParameter name
valueParameter value
Note
Memory: Makes copies of name and value strings

◆ fetch_url_search_params_delete()

void fetch_url_search_params_delete ( fetch_url_search_params_t * params,
const char * name )

Remove all parameters with the given name.

Parameters
paramsParameters container
nameParameter name to remove

◆ fetch_url_search_params_entries()

fetch_url_search_params_iterator_t fetch_url_search_params_entries ( const fetch_url_search_params_t * params)

Create an iterator for URL search parameters.

Parameters
paramsParameters to iterate
Returns
Iterator object (no cleanup required)

◆ fetch_url_search_params_free()

void fetch_url_search_params_free ( fetch_url_search_params_t * params)

Free a URL search parameters container.

Parameters
paramsParameters to free (can be NULL)
Note
Memory: Frees the parameters and all contained strings

◆ fetch_url_search_params_get()

const char * fetch_url_search_params_get ( const fetch_url_search_params_t * params,
const char * name )

Get the first parameter value with the given name.

Parameters
paramsParameters container
nameParameter name
Returns
Parameter value (owned by params, do not free), or NULL if not found
Note
Memory: Returned string is owned by the parameters object

◆ fetch_url_search_params_has()

bool fetch_url_search_params_has ( const fetch_url_search_params_t * params,
const char * name )

Check if a parameter exists.

Parameters
paramsParameters container
nameParameter name
Returns
true if parameter exists

◆ fetch_url_search_params_new()

fetch_url_search_params_t * fetch_url_search_params_new ( void )

Create a new URL search parameters container.

Returns
New parameters object (caller owns, must call fetch_url_search_params_free()), or NULL on failure
Note
Memory: Returns owned object that must be freed

◆ fetch_url_search_params_next()

bool fetch_url_search_params_next ( fetch_url_search_params_iterator_t * iter,
const char ** key,
const char ** value )

Get the next parameter from an iterator.

Parameters
iterIterator object
keyOutput pointer for parameter name (owned by params, do not free)
valueOutput pointer for parameter value (owned by params, do not free)
Returns
true if a parameter was returned, false if iteration complete
Note
Memory: Returned strings are owned by the parameters object

◆ fetch_url_search_params_set()

void fetch_url_search_params_set ( fetch_url_search_params_t * params,
const char * name,
const char * value )

Set a parameter (replaces existing)

Parameters
paramsParameters container
nameParameter name
valueParameter value
Note
Memory: Makes copies of name and value strings

◆ fetch_url_search_params_to_string()

char * fetch_url_search_params_to_string ( const fetch_url_search_params_t * params)

Convert parameters to URL-encoded string.

Parameters
paramsParameters container
Returns
URL-encoded string (caller owns, must call free()), or NULL on failure
Note
Memory: Returns owned string that must be freed with free()
fetch_url_search_params_append(params, "q", "hello world");
fetch_url_search_params_append(params, "lang", "en");
char *query_string = fetch_url_search_params_to_string(params);
if (query_string) {
printf("Query: %s\n", query_string); // "q=hello%20world&lang=en"
free(query_string); // Required: free the string
}
fetch_url_search_params_free(params); // Required: free the params
void fetch_url_search_params_append(fetch_url_search_params_t *params, const char *name, const char *value)
Add a parameter (allows duplicates)
Definition fetch.c:8578
fetch_url_search_params_t * fetch_url_search_params_new(void)
Create a new URL search parameters container.
Definition fetch.c:8505
void fetch_url_search_params_free(fetch_url_search_params_t *params)
Free a URL search parameters container.
Definition fetch.c:8538
char * fetch_url_search_params_to_string(const fetch_url_search_params_t *params)
Convert parameters to URL-encoded string.
Definition fetch.c:8661
URL search parameters container.
Definition fetch.h:594