gpt4 book ai didi

c - 如何使用 ap_parse_form_data 并保留请求体?

转载 作者:太空宇宙 更新时间:2023-11-04 04:42:22 24 4
gpt4 key购买 nike

我正在为 apache 开发一个模块,它在将请求传递到后端之前执行一些身份验证。某些身份验证有时需要解析表单数据。问题是 ap_parse_form_data 似乎耗尽了请求主体,因此当它通过我的模块并到达 ProxyPass 指令时,该指令将其漏斗到后端,请求主体消失,后端认为没有提供表单数据。

有没有什么方法可以使用 ap_parse_form_data 来保持请求正文的完整性?

最佳答案

郑重声明,我最终没有弄清楚如何让 ap_parse_form_data 不丢弃请求正文。我能够通过像这样手动添加回请求主体来实现相同的效果:

apr_bucket_brigade *new_brigade = apr_brigade_create(req->pool, req->connection->bucket_alloc);
apr_bucket *bucket = apr_bucket_transient_create(reencoded_form_data,
strlen(reencoded_form_data), req->connection->bucket_alloc);
APR_BRIGADE_INSERT_TAIL(new_brigade, bucket);
req->kept_body = new_brigade;

这并不理想,因为如果在实际上不包含表单数据的请求主体上调用 ap_parse_form_data,它不会处理丢弃请求主体的副作用。但它足以满足我的目的...

关于c - 如何使用 ap_parse_form_data 并保留请求体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25071396/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com