我正在尝试仅使用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/

10-13 06:50