c - libmicrohttpd 中的后期数据处理

标签 c http httprequest

我正在使用 libmicrohttpd ( http://www.gnu.org/software/libmicrohttpd/ ) 来实现一个服务器,该服务器从客户端(一个 HTML 页面)接受一个文件并对其进行加密并将其发送回客户端。我正在向带有文件的服务器发出 POST 请求,并选择服务器是否应加密或解密已加密的文件。

我知道“KEY:VALUE”对用于通过 POST_PROCESSOR 处理 POST 数据这一事实,但我找不到任何关于如何使用 POST_PROCESSOR 从客户端获取 POST 数据的良好支持文档。

我正在寻找有关如何获取客户端发送的数据的示例,我认为有人可以在这里帮助我。

我选择 libmicrohttpd 是因为加密需要更好的性能,因为它需要时间,并且在 c 中实现它是一个不错的选择。关于可用于实现上述内容的替代框架的任何建议也会有所帮助(最有可能是 java api 可以充当客户端的地方)。

提前致谢。

最佳答案

今天我在类似的question 中做了评论:

I'm using GNU libmicrohttpd too, and I found a simple POST demo on its repository.

The demo is a little bit simple: it has a form that asks about your name, so when you type your name and click in the "Send" button, the posted data is processed in the answer_to_connection() function:

所以我发送了原始演示中的一小部分:

static int answer_to_connection (void *cls, struct MHD_Connection *connection,
                      const char *url, const char *method,
                      const char *version, const char *upload_data,
                      size_t *upload_data_size, void **con_cls)
{
...

  if (0 == strcmp (method, "POST"))
    {
      struct connection_info_struct *con_info = *con_cls;

      if (*upload_data_size != 0)
        {
          MHD_post_process (con_info->postprocessor, upload_data,
                            *upload_data_size);
          *upload_data_size = 0;

          return MHD_YES;
        }
      else if (NULL != con_info->answerstring)
        return send_page (connection, con_info->answerstring);
    }
...

我相信这个演示可以帮助你,因为我做了一些测试,它运行良好。 =)

关于c - libmicrohttpd 中的后期数据处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27437693/

相关文章:

c - 数组未打印正确的值

c - 遍历奇数和 2

c++ - 如何在给定函数之外获取与 C 闭包关联的(向上)值?

c - 如何让音频听起来更好? (C+FFMpeg音频生成示例)

http - 消息传递是请求/回复的良好实现吗

java - ping HTTP URL 以确保可用性的首选 Java 方法

node.js - 请求 Github API 的 NodeJS 应用程序中的 408 超时

javascript - 使用 Nodejs 请求模块对返回未定义进行地理编码的函数

javascript - 没有访问控制允许 origin in rails

java - 如何在类中的多个方法中检索 Http session 数据