我使用libmicrohttpd(http://www.gnu.org/software/libmicrohttpd/)来实现一个服务器,它接受来自客户端的文件(一个html页面)并对其进行加密并将其发送回客户端。我正在用文件向服务器发出post请求,并选择服务器是否应该加密或解密已加密的文件。
我知道“key:value”对用于通过post_处理器处理post数据,但是我找不到任何关于如何使用post_处理器从客户端获取post数据的好的支持文档。
我在找一个如何获取客户发送的数据的例子,我想有人可以帮我。
我选择libmicrohttpd是因为加密需要更好的性能,因为它需要时间,用c语言实现它将是一个不错的选择。关于可用于实现上述功能的替代框架的任何建议也会有帮助(最可能的情况是java api可以充当客户机)。
提前谢谢。
最佳答案
今天我发表了一篇类似的评论:
我也在使用gnu libmicrohttpd,我在它的
question。
演示有点简单:它有一个表单,询问
当你输入你的名字并点击“发送”按钮时,
发布的数据在answer_to_connection()函数中处理:
所以我从原始演示中发送了一小部分:
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);
}
...
我相信这个演示可以帮助你,因为我做了一些测试,效果很好。=)