コード例 #1
0
ファイル: response.c プロジェクト: galdor/libhttp
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);
}
コード例 #2
0
ファイル: http_request.c プロジェクト: EvanKuhn/webserver
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>"));
}