我试图使用WinInet API简单地访问页面。一旦我访问它,我希望能够将内容读入字符串。我已经初始化了根节点。这是我到目前为止所得到的:
HINTERNET hChildURL = InternetOpenUrl(hInternetRoot,
LPCTSTR(CString("http://www.google.com/")),
NULL,
0,
0,
0);
在此之后,我知道您必须利用InternetReadFile来实际提取数据。有人可以提供一个如何做到这一点的详细例子。我不是特别熟悉C风格的文件功能和使用缓冲区,所以请放轻松。
另一方面,是否应该使用不同的或更现代的Windows API而不是?从长远来看,我已被分配开发一个应用程序,它将充当客户端,并使用HTTP和HTTPS与远程服务器发送/记录数据。我在这里走正确的道路吗?
编辑:更具体的要求:它必须用c ++编写,它必须与Win XP及以后版本兼容,并且它必须仅使用标准的Windows库。除此之外,我可以随心所欲地做。
答案 0 :(得分:1)
嗯,你一次只能在一个块中阅读它:
HINTERNET Request = InternetOpenUrl(...);
if(Request != NULL)
{
BYTE Buffer[8192];
DWORD BytesRead;
while(InternetReadFile(Request, Buffer, 8192, &BytesRead) && BytesRead != 0)
{
// do something with Buffer
}
InternetCloseHandle(Request);
Request = NULL;
}