您尚未登录。

楼主 # 2021-06-01 15:37:24

xfdr0805
会员
注册时间: 2020-07-23
已发帖子: 128
积分: 111

thttpd搭建的http服务器如何获取POST的JSON数据?

之前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;
}

2021-06-01_153107.png
2021-06-01_153406.png

离线

楼主 #1 2021-06-01 15:48:22

xfdr0805
会员
注册时间: 2020-07-23
已发帖子: 128
积分: 111

Re: thttpd搭建的http服务器如何获取POST的JSON数据?

前端与服务器之间通过JSON交换数据,CGI只处理JSON数据,所以前端数据都是AJAX提交的,不是表单形式POST过来的数据,现是就是获取不到数据?第一次在LINUX编写程序,请大佬指点一下,谢谢!

离线

#2 2021-06-01 16:48:19

哇酷小二
管理员
注册时间: 2020-04-22
已发帖子: 2,293
积分: 1907

Re: thttpd搭建的http服务器如何获取POST的JSON数据?

fgets(poststr, len + 1, stdin);

这个没有获取到数据吗?

离线

楼主 #3 2021-06-01 22:15:32

xfdr0805
会员
注册时间: 2020-07-23
已发帖子: 128
积分: 111

Re: thttpd搭建的http服务器如何获取POST的JSON数据?

哇酷小二 说:

fgets(poststr, len + 1, stdin);

这个没有获取到数据吗?

取不到,真的是非常奇怪

离线

楼主 #4 2021-06-02 15:16:56

xfdr0805
会员
注册时间: 2020-07-23
已发帖子: 128
积分: 111

Re: thttpd搭建的http服务器如何获取POST的JSON数据?

xfdr0805 说:
哇酷小二 说:

fgets(poststr, len + 1, stdin);

这个没有获取到数据吗?

取不到,真的是非常奇怪

搞定了,使用read就可以获取到POST来的数据

离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn