gpt4 book ai didi

c - Mongoose 中的 mg_send_response_line() 不起作用

转载 作者:行者123 更新时间:2023-11-30 16:49:31 24 4
gpt4 key购买 nike

我正在尝试使用 mongoose C 库开发一个服务器应用程序。在我尝试的初始阶段,我一直停留在发送 HTTP 请求的响应上。我正在尝试使用以下代码行发送 status 200 的简单响应:

 mg_send_response_line(nc, 200, "Access-Control-Allow-Origin: *");
printf("Response sent...\n");

但是客户端(Postman 或网络浏览器)没有收到响应。没有错误,甚至打印了发送的Response的printf行。与此相反,以下几行已成功执行:

 mg_http_send_error(nc,404, "Fatal Error!"); // I get this error at client side.

基本的 simple_web_server 也可以正常工作。为什么我的单行代码发送响应失败。我无法理解/调试这个。

问候,

尼拉吉。

最佳答案

问题是没有为 HTTP 响应指定内容长度或传输编码,并且服务器没有关闭连接,因此客户端挂起等待响应。

如果你查看source code ,您将看到在 mg_http_send_error() 中,设置了 MG_F_SEND_AND_CLOSE 标志,但在 mg_send_response_line() 中未设置(尽管如此,就像您一样,我假设这将由函数处理)。

要解决您的环境中的问题,

mg_send_response_line(nc, 200, "Access-Control-Allow-Origin: *");
printf("Response sent...\n");
nc->flag |= MG_F_SEND_AND_CLOSE;

关于c - Mongoose 中的 mg_send_response_line() 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42563701/

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