libevent とその http API を使用して、C サーブレットを作成できる単純な HTTP サーバーを作成しています。このサーブレットは GET で問題なく動作していますが、現在 POST でデータを送信しており、受信イベント バッファ evb を読みたいと考えています。evb に存在するデータを印刷/検査したいのですが、できません。データを evb (evbuffer) の char* 変数に入れる方法を知っていますか? バッファを操作するメソッドのみを見ましたが、それを読み取っていませんでした。私は試した:
evb->
これはコードです:
#include <stdio.h>
#include "servlet.h"
void servlet(struct evhttp_request *req, struct evbuffer *evb) {
time_t now;
time(&now);
evbuffer_add_printf(evb, "<html>\n <head>\n"
" <title>%s</title>\n"
" </head>\n"
" <body>\n"
" <h1>%s</h1>\n"
" <p>Current time is: %s</p>",
"C servlet engine", "C servlet", ctime(&now));
evhttp_add_header(evhttp_request_get_output_headers(req),
"Content-Type", "text/html");
evhttp_send_reply(req, 200, "OK", evb);
}
I am trying this
void servlet(struct evhttp_request *req, struct evbuffer *evb) {
size_t len = evbuffer_get_length(evhttp_request_get_input_buffer(req));
struct evbuffer *in_evb = evhttp_request_get_input_buffer(req);
char *data;
evbuffer_copyout(in_evb, data, len);
しかし、私はバスエラーを受け取ります: 10 (私はMacを使用しています)