我正在尝试仅使用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库。除此之外,我可以随意做。
最佳答案
好吧,您一次只能阅读一小段:
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;
}
关于.net - <WinInet.h> API中有关InternetOpenUrl和InternetReadFile的帮助,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3407141/