返回

WinHTTP 导致 Apache Web 服务器 (localhost) 在 Windows Vista 上以 http 状态 400 进行响应

发布时间:2022-05-26 07:47:17 237
# apache# 服务器# 服务器

我正在尝试使用 WinHTTP 向 apache Web 服务器发送请求。我的代码从 Windows 7 运行到 Windows 11,但在 Windows Vista 上,我在发送请求后收到来自服务器的错误 400。我的代码如下所示:

if(!(cp->connection = fpWinHttpConnect(cp->session, cp->currentPanel.domain, cp->currentPanel.secure ? INTERNET_DEFAULT_HTTPS_PORT : INTERNET_DEFAULT_HTTP_PORT, 0)))
        goto Done;

if (!(cp->request = fpWinHttpOpenRequest(cp->connection, L"POST", cp->currentPanel.gatePath, NULL, WINHTTP_NO_REFERER, WINHTTP_DEFAULT_ACCEPT_TYPES, cp->currentPanel.secure ? WINHTTP_FLAG_SECURE | WINHTTP_FLAG_REFRESH : WINHTTP_FLAG_REFRESH)))
        goto Done;

if (!fpWinHttpSendRequest(cp->request, L"Content-Type: application/x-www-form-urlencoded", 48, postData, StrlA(postData), StrlA(postData), 0))
        goto Done;

if (!fpWinHttpReceiveResponse(cp->request, 0))
        goto Done;

if (!fpWinHttpQueryHeaders(cp->request, WINHTTP_QUERY_STATUS_CODE | WINHTTP_QUERY_FLAG_NUMBER, WINHTTP_HEADER_NAME_BY_INDEX, &statusCode, &statusCodeSize, WINHTTP_NO_HEADER_INDEX))
        goto Done;

//statusCode == 400

为什么会发生此错误,为什么只在Windows Vista上发生?

编辑:在apache中启用调试日志后,我可以看到以下错误。日志:[core:debug] [pid 29580:tid 1860] protocol.c(1116): (22)Invalid argument: [client 127.0.0.1:53267] Failed to read request header line Content-Type: application/x-www-form-urlencoded

特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(1)
按点赞数排序
用户头像