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

Functions for reading HTTP responses. More...

Functions

const char * fetch_response_text (fetch_response_t *response)
 Get response body as text.
 
const void * fetch_response_array_buffer (fetch_response_t *response, size_t *size)
 Get response body as binary data.
 
const char * fetch_response_json (fetch_response_t *response)
 Get response body as JSON text.
 
bool fetch_response_ok (const fetch_response_t *response)
 Check if response is successful (2xx status)
 
uint16_t fetch_response_status (const fetch_response_t *response)
 Get HTTP status code.
 
const char * fetch_response_status_text (const fetch_response_t *response)
 Get HTTP status text.
 
const char * fetch_response_url (const fetch_response_t *response)
 Get final URL (after redirects)
 
fetch_headers_tfetch_response_headers (const fetch_response_t *response)
 Get response headers.
 
fetch_response_tfetch_response_clone (const fetch_response_t *response)
 Clone a response object.
 
void fetch_response_free (fetch_response_t *response)
 Free a response object.
 

Detailed Description

Functions for reading HTTP responses.

Function Documentation

◆ fetch_response_array_buffer()

const void * fetch_response_array_buffer ( fetch_response_t * response,
size_t * size )

Get response body as binary data.

Parameters
responseThe response
sizeOutput pointer for data size
Returns
Pointer to binary data (owned by response, do not free), or NULL if no body
Note
Memory: Returned data is owned by the response object
size_t size;
const uint8_t *data = fetch_response_array_buffer(response, &size);
if (data) {
printf("Received %zu bytes of binary data\n", size);
// Process data...
// Do NOT free data, it's owned by response
}
const void * fetch_response_array_buffer(fetch_response_t *response, size_t *size)
Get response body as binary data.
Definition fetch.c:8341

◆ fetch_response_clone()

fetch_response_t * fetch_response_clone ( const fetch_response_t * response)

Clone a response object.

Parameters
responseThe response to clone
Returns
New response object (caller owns, must call fetch_response_free()), or NULL on failure
Note
Memory: Creates a deep copy, caller owns the new response

◆ fetch_response_free()

void fetch_response_free ( fetch_response_t * response)

Free a response object.

Parameters
responseResponse to free (can be NULL)
Note
Memory: Frees the response and all contained data

◆ fetch_response_headers()

fetch_headers_t * fetch_response_headers ( const fetch_response_t * response)

Get response headers.

Parameters
responseThe response
Returns
Headers object (owned by response, do not free)
Note
Memory: Returned headers are owned by the response object

◆ fetch_response_json()

const char * fetch_response_json ( fetch_response_t * response)

Get response body as JSON text.

Parameters
responseThe response
Returns
JSON text (owned by response, do not free), or NULL if not JSON or no body
Note
Memory: Returned string is owned by the response object

◆ fetch_response_ok()

bool fetch_response_ok ( const fetch_response_t * response)

Check if response is successful (2xx status)

Parameters
responseThe response
Returns
true if status is 200-299

◆ fetch_response_status()

uint16_t fetch_response_status ( const fetch_response_t * response)

Get HTTP status code.

Parameters
responseThe response
Returns
HTTP status code (e.g., 200, 404, 500)

◆ fetch_response_status_text()

const char * fetch_response_status_text ( const fetch_response_t * response)

Get HTTP status text.

Parameters
responseThe response
Returns
Status text (owned by response, do not free)
Note
Memory: Returned string is owned by the response object

◆ fetch_response_text()

const char * fetch_response_text ( fetch_response_t * response)

Get response body as text.

Parameters
responseThe response
Returns
Text content (owned by response, do not free), or NULL if not text or no body
Note
Memory: Returned string is owned by the response object
fetch_response_t *response = fetch("https://httpbin.org/get", NULL);
if (response) {
const char *text = fetch_response_text(response);
if (text) {
printf("Response: %s\n", text);
// Do NOT free text, it's owned by response
}
fetch_response_free(response); // Required: free the response
}
fetch_response_t * fetch(const char *url, fetch_init_t *init)
Make a synchronous HTTP request (BLOCKING)
Definition fetch.c:7835
void fetch_response_free(fetch_response_t *response)
Free a response object.
Definition fetch.c:8389
const char * fetch_response_text(fetch_response_t *response)
Get response body as text.
Definition fetch.c:8329
HTTP response object.
Definition fetch.h:515

◆ fetch_response_url()

const char * fetch_response_url ( const fetch_response_t * response)

Get final URL (after redirects)

Parameters
responseThe response
Returns
Final URL string (owned by response, do not free)
Note
Memory: Returned string is owned by the response object