如何将大型,频繁的xml数据从javascript发送到c ++ http服务器

时间:2015-01-07 04:54:55

标签: c++ http post server

在我的项目中,我想将可能大而频繁的XML数据发送到用c ++编写的自定义服务器。我不想使用Apache和CGI,因为数据太频繁而无法为每个请求启动CGI进程。如果直接在c ++代码中收到数据,我会更喜欢处理数据并发送回复。

我开始使用libmicrohttpd作为c ++服务器,但现在我相信它不可能,因为它不能访问原始POST数据。我开始寻找另一个库,但我似乎找不到这样做的c ++库。任何人都可以建议一个可以访问原始帖子数据的c ++ http服务器库吗?

这是我打算开始的代码。它是libmicrohttpd源代码中提供的示例文件之一。 Post Example from libmicrohttpd library

编辑:

更多背景。

根据我的理解,访问libmicrohttpd中的post数据,你创建了MHD_PostProcessor函数,当以块的形式接收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) {
...

在上面发布的示例中。您将看到它只显示如何迭代键值对。

1 个答案:

答案 0 :(得分:0)

MHD确实可以让您访问原始POST数据,只需从" upload_data"直接而不是将其传递给MHD_PostProcessor。 MHD将通过重复调用主请求处理回调来递增地为您提供上传的POST流,并且越来越多的POST数据被提供给您原始的,未处理的" upload_data"。