之前MCU我知道是从TCP获取到数据后,获取到ContentLength后,直接从\r\n\r\n处获取数据就可以了,现在在linux中是通过stdin获取的,能获取到长度,但是内容却获取不知道,不知道是什么原因
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
long len;
char *lenstr, poststr[256];
lenstr = getenv("CONTENT_LENGTH");
// if(lenstr == NULL || len > MAXLEN)
if (lenstr == NULL)
printf("<P>表单提交错误.");
else
{
len = atoi(lenstr);
printf("data len:--->%d", len);
fgets(poststr, len + 1, stdin);
printf("post data:--->%s", poststr);
}
return 0;
}
离线
前端与服务器之间通过JSON交换数据,CGI只处理JSON数据,所以前端数据都是AJAX提交的,不是表单形式POST过来的数据,现是就是获取不到数据?第一次在LINUX编写程序,请大佬指点一下,谢谢!
离线
fgets(poststr, len + 1, stdin);
这个没有获取到数据吗?
取不到,真的是非常奇怪
离线
哇酷小二 说:fgets(poststr, len + 1, stdin);
这个没有获取到数据吗?
取不到,真的是非常奇怪
搞定了,使用read就可以获取到POST来的数据
离线