gpt4 book ai didi

c++ - 返回无效状态代码的 WinInet HttpQuery 信息

转载 作者:太空狗 更新时间:2023-10-29 19:38:51 24 4
gpt4 key购买 nike

我正在开发一个需要在加载页面之前检查页面是否存在的程序(所以没有什么特别的)。

一切正常,但我无法让 HttpQueryInfo 返回页面的有效状态代码。返回的状态码为:1875378224

产生问题的代码:

DWORD headerBuffSize = sizeof(DWORD);
DWORD statusCode;
//Check existance of page (for 404 error)
if(!HttpQueryInfo(hRequestHandle,
HTTP_QUERY_STATUS_CODE,
&statusCode,
&headerBuffSize,
NULL))
return 4;

if(statusCode == HTTP_STATUS_NOT_FOUND)
cout << "We got a 404 error" << endl;

cout << "Got Status code: " << statusCode << endl; //1875378224 everywhere
cout << "404 status code: " << HTTP_STATUS_NOT_FOUND << endl; //What it should be getting

我不知道该怎么做;我将自己的代码与几个在线示例进行了比较,看起来它应该 可以工作,尽管我可能只是犯了一个愚蠢的错误。

谢谢!

最佳答案

正如其他人指出的那样HttpQueryInfo以字符串形式返回请求的信息。您需要确保分配了一个足够大的缓冲区来检索字符串,并且释放它取决于您的应用程序。

但是,HttpQueryInfo 的相同 Microsoft 文档还提示您可以获得 HTTP_QUERY_STATUS_CODEDWORD,前提是使用了 HTTP_QUERY_FLAG_NUMBER

以下代码片段向您展示了如何:

DWORD statusCode = 0;
DWORD length = sizeof(DWORD);
HttpQueryInfo(
hRequestHandle,
HTTP_QUERY_STATUS_CODE | HTTP_QUERY_FLAG_NUMBER,
&statusCode,
&length,
NULL
);

关于c++ - 返回无效状态代码的 WinInet HttpQuery 信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6777236/

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