gpt4 book ai didi

c - 如何从非浏览器设备发出 HTTP POST?

转载 作者:行者123 更新时间:2023-11-30 15:13:33 24 4
gpt4 key购买 nike

我正在从非浏览器设备(POS、销售点)发出 http post 请求,该请求是用 C 编程的。

完美执行 http GET 请求,我收到了服务器的答复。我只是与主机连接,构建消息,例如:

strcpy(msjEnv, "GET /app/appinfo/ HTTP/1.1\r\n"
"Host: 185.12.25.138\n"
"User-Agent: 3C377521\n"
"\n"
"\0");

然后我发送 msjEnv ,以便如我所说,从服务器获取我需要的答案 (JSON)。

现在,通过 http POST 请求,服务器不知何故没有收到构建消息的正文,例如:

strcpy(msjEnv, "POST /services/s/Core/login HTTP/1.1\r\n"
"Host: 185.12.25.138:7004\r\n"
"auth: asdasd\r\n"
"Content-Type: application/x-www-form-urlencoded\r\n"
"\r\n"
"disp=101010&usr=987676&pass=123456&app=POS\0");

当我看到服务器的控制台(trace)时,我可以看到 POS 已与服务器连接,但消息正文( disp=101010&usr=896464&pass=9514&app=WPOS )全部为空。

我已经使用 Postman(Chrome 应用商店的一个优秀应用程序来测试 API)进行了测试,并且收到了正确的响应。

我想我需要在 POST header 中添加一些额外的内容,因为作为非浏览器设备,也许我没有像浏览器那样进行一些自动通信配置。有什么想法吗?

最佳答案

您需要将 Content-Length header 添加到您的请求中。

关于c - 如何从非浏览器设备发出 HTTP POST?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34514422/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com