我有一个用 C 编写的 CGI 模块,在某些情况下我想从该模块返回 HTTP 错误 400。问题是 - 我不知道如何从模块返回 HTTP 错误。
看起来像我的模块中的“return(-1)”,返回 500 内部服务器错误。我尝试过退回 400 等,但还是很热情。我什至尝试过“printf(“Status:400”);” 在返回 -1 之前(如此处建议的:How to return a 500 HTTP status from a C++ CGI program ),但这不起作用。
任何对此的建议将不胜感激。
编辑:[已解决] 我能够从 python 模块返回 HTTP 错误代码(稍后由该 C CGI 模块调用)。所以没有尝试下面评论中提到的建议。不过还是感谢您提供帮助。
use*_*422 10
要将 HTTP 错误 400 返回给 HTTP 客户端,您必须将 HTTP 状态行写入 stdout,如下所示:
printf("Status: 400 Bad Request\n");
Run Code Online (Sandbox Code Playgroud)
参考: https: //www.rfc-editor.org/rfc/rfc3875
Status 标头字段包含一个 3 位整数结果代码,指示脚本尝试处理请求的成功级别。
Status = "Status:" status-code SP reason-phrase NL
status-code = "200" | "302" | "400" | "501" | extension-code
extension-code = 3digit
reason-phrase = *TEXT
Run Code Online (Sandbox Code Playgroud)