我正尝试使用用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数据?
POST数据附加在请求头部的双重换行符之后。在CGI-BIN环境中,您可以从STDIN中读取它。
请注意,服务器不需要在POST数据末尾发送EOF字符(或其他终止指示器)。永远不要读取超过CONTENT_LENGTH字节。
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);