我正在用C++构建一个小型web服务器,目前我正在尝试添加对PHP页面POST请求的支持。
但是,我不知道应该如何将POST请求体传递给PHP可执行文件。我看到了一些设置环境变量并调用php-cgi
的例子,但我还没有看到何时设置哪些变量的明确列表。
如果我在字符串中有POST主体数据,那么使用php-cgi
在所需的PHP文件上执行POST请求的最佳方式是什么?我的设置适用于PHP文件,其中没有参数或POST数据从web服务器发送到可执行文件。
我使用以下环境变量使其工作:
cmd = "echo ""+req->body()+"" | "
"REDIRECT_STATUS=CGI "
"REQUEST_METHOD=POST "
"SCRIPT_FILENAME="+uri->src()+" "
"CONTENT_TYPE=application/x-www-form-urlencoded "
"CONTENT_LENGTH="+std::to_string(req->body().length())+" "
"php-cgi";