我正在尝试使用用 C 编写的程序从 html 表单中检索 POST 数据。
目前我正在使用:
char *formdata = getenv("QUERY_STRING");
if(formdata == NULL) /* no data retrieved */
这似乎适用于表单“GET”方法,但不适用于“POST”方法。如何检索 POST 数据?
我正在尝试使用用 C 编写的程序从 html 表单中检索 POST 数据。
目前我正在使用:
char *formdata = getenv("QUERY_STRING");
if(formdata == NULL) /* no data retrieved */
这似乎适用于表单“GET”方法,但不适用于“POST”方法。如何检索 POST 数据?
如果我没记错,请阅读stdin
POST 数据。
编辑未经测试的片段
len_ = getenv("CONTENT_LENGTH");
len = strtol(len_, NULL, 10);
postdata = malloc(len + 1);
if (!postdata) { /* handle error or */ exit(EXIT_FAILURE); }
fgets(postdata, len + 1, stdin);
/* work with postdata */
free(postdata);
POST 数据附加到请求标头,在双换行符之后。在 CGI-BIN 环境中,您从 STDIN 读取它。
请注意,服务器不需要在 POST 数据的末尾向您发送 EOF 字符(或某些终止指示符)。永远不要读取超过 CONTENT_LENGTH 个字节。
为什么要重新发明那个轮子?只需使用一个库: http: //libcgi.sourceforge.net/