在我的项目中,我希望将可能很大且频繁的XML数据发送到一个用c++编写的自定义服务器。我不想使用Apache和CGI,因为数据太频繁了,无法为每个请求启动CGI进程。我更喜欢直接在c++代码中接收数据,该代码将处理数据并发送回复。
我一开始是在c++服务器上使用libmicrohttpd,但现在我认为这是不可能的,因为它不提供对原始POST数据的访问。我开始寻找另一个库,但是我似乎找不到一个能做到这一点的c++库。有人能推荐一个可以访问原始帖子数据的c++ http服务器库吗?
这是我打算开始的代码。它是libmicrohttpd源代码中提供的示例文件之一。Post Example from libmicrohttpd library
编辑:
更多的上下文。
据我所知,为了访问libmicrohttpd中的post数据,您创建了MHD_PostProcessor函数,该函数随着post数据被分块接收而逐渐被调用。但在下面的示例中,它只展示了如何以键值对的形式获取post数据。但我不知道如何从帖子中获取数据。
该示例将MHD_PostProcessor实现为post_iterator。请参阅定义
static int post_iterator(void *cls,
enum MHD_ValueKind kind,
const char *key,
const char *filename,
const char *content_type,
const char *transfer_encoding,
const char *data, uint64_t off, size_t size) {
...在上面发布的示例中。您将看到它只展示了如何迭代键值对。
发布于 2015-01-08 07:41:49
MHD确实让你可以访问原始的POST数据,只需直接从"upload_data“获取,而不是传递给MHD_PostProcessor。MHD会通过重复调用你的主请求处理回调来递增地给你上传的POST流,越来越多的POST数据在"upload_data“中被提供给你原始的、未处理的。
https://stackoverflow.com/questions/27812618
复制相似问题