Method
SoupServeradd_handler
Declaration [src]
void
soup_server_add_handler (
SoupServer* server,
const char* path,
SoupServerCallback callback,
gpointer user_data,
GDestroyNotify destroy
)
Description [src]
Adds a handler to server
for requests prefixed by path
.
If path
is NULL
or “/”, then this will be the default handler for all
requests that don’t have a more specific handler. (Note though that if you
want to handle requests to the special “” URI, you must explicitly register
a handler for ““; the default handler will not be used for that case.)
For requests under path
(that have not already been assigned a
status code by a SoupAuthDomain
, an early server handler, or a
signal handler), callback
will be invoked after receiving the
request body; the SoupServerMessage
‘s method, request-headers,
and request-body properties will be set.
After determining what to do with the request, the callback must at a minimum
call soup_server_message_set_status()
on the message to set the response
status code. Additionally, it may set response headers and/or fill in the
response body.
If the callback cannot fully fill in the response before returning
(eg, if it needs to wait for information from a database, or
another network server), it should call soup_server_message_pause()
to tell server
to not send the response right away. When the
response is ready, call soup_server_message_unpause()
to cause it
to be sent.
To send the response body a bit at a time using “chunked” encoding, first
call soup_message_headers_set_encoding()
to set SOUP_ENCODING_CHUNKED
on
the response-headers. Then call soup_message_body_append()
(or
soup_message_body_append_bytes()
)) to append each chunk as it becomes ready,
and soup_server_message_unpause()
to make sure it’s running. (The server
will automatically pause the message if it is using chunked encoding but no
more chunks are available.) When you are done, call
soup_message_body_complete()
to indicate that no more chunks are coming.
Parameters
path
-
Type:
const char*
The toplevel path for the handler.
The argument can be NULL
.The data is owned by the caller of the function. The value is a NUL terminated UTF-8 string. callback
-
Type:
SoupServerCallback
Callback to invoke for requests under
path
. user_data
-
Type:
gpointer
Data for
callback
.The argument can be NULL
.The data is owned by the caller of the function. destroy
-
Type:
GDestroyNotify
Destroy notifier to free
user_data
.