Working with Request and Response¶
Request¶
The Request
object represents an incoming HTTP request.
You can access URL, query parameters, headers, body, and the request method.
Get the Request URL¶
Get the Full URL (with query string)¶
Get Query Parameters¶
for (const auto &[key, values] : request.getQueryParams()) {
std::cout << key << ":\n";
for (const auto &v : values) {
std::cout << " " << v << "\n";
}
}
Get URI Parameters¶
Get Headers¶
for (const auto &[name, values] : request.getHeaders()) {
std::cout << "Header: " << name << "\n";
for (const auto &val : values) {
std::cout << " Value: " << val << "\n";
}
}
Get Request Method¶
Get Request Body¶
Response¶
The Response
object represents what will be sent back to the client.
You can set status, headers, body, and even serve files.
Set Status and Message¶
Add Headers¶
Set Body¶
Send a File¶
Chunked Responses¶
Example Handler¶
void handler(usub::server::protocols::http::Request &request,
usub::server::protocols::http::Response &response) {
std::cout << "URL: " << request.getURL() << "\n";
std::cout << "Method: " << request.getRequestMethod() << "\n";
response.setStatus(200)
.setMessage("OK")
.addHeader("Content-Type", "text/plain")
.setBody("Hello from handler!\n");
}
Next Steps¶
- Learn how to add middleware.
- Explore Quick Start to set up a basic server.