void http_response_to_buffer(const struct http_response *response, struct c_buffer *buf) { const char *version_string, *status_string; version_string = http_version_to_string(response->version); assert(version_string); status_string = http_status_to_string(response->status); assert(status_string); /* Status line */ c_buffer_add_printf(buf, "%s %d %s\r\n", version_string, response->status, status_string); /* Headers */ for (size_t i = 0; i < http_headers_nb_headers(response->headers); i++) { const char *name, *value; name = http_headers_nth_header(response->headers, i, &value); c_buffer_add_printf(buf, "%s: %s\r\n", name, value); } c_buffer_add_string(buf, "\r\n"); /* Body */ if (response->body) c_buffer_add(buf, response->body, response->body_sz); }
void http_request_print(HttpRequest* request) { printf("HTTP Request\n"); printf("- Version: %s\n", http_version_to_string(request->version)); printf("- Method: %s\n", http_method_to_string(request->method)); printf("- URI: %s\n", (request->uri ? request->uri : "<none>")); printf("- Headers (%zu):\n", request->num_headers); for(size_t i=0; i<request->num_headers; ++i) { printf(" %s: %s\n", request->headers[i].key, request->headers[i].value); } printf("- Body: %s\n", (request->body ? request->body : "<none>")); }