Справка по InternetOpenUrl и InternetReadFile в API <WinInet.h> - PullRequest
0 голосов
/ 04 августа 2010

Я пытаюсь просто получить доступ к странице с помощью API WinInet.Получив доступ к нему, я бы хотел прочитать содержимое в строку.Я уже инициализировал корневой узел.Вот что я получил до сих пор:

HINTERNET hChildURL = InternetOpenUrl(hInternetRoot,
                                      LPCTSTR(CString("http://www.google.com/")),
                                      NULL,
                                      0,
                                      0,
                                      0);

После этого я знаю, что вам нужно использовать InternetReadFile для фактического извлечения данных.Может кто-нибудь предоставить подробный пример того, как это сделать.Я не особенно знаком с файловыми функциями в стиле C и использованием буферов, поэтому, пожалуйста, будьте осторожны со мной.

С другой стороны, есть ли другой или более современный Windows API, который я должен использовать вместо?В долгосрочной перспективе мне было поручено разработать приложение, которое будет действовать как клиент и отправлять / записывать данные, используя HTTP и HTTPS с удаленным сервером.Я иду по правильному пути?

Редактировать: Чтобы быть более точным в отношении требований: он должен быть написан на c ++, он должен быть совместим с Win XP и более поздними версиями, и он должен использовать только стандартные библиотеки Windows.Кроме этого, я могу делать все, что захочу.

1 Ответ

1 голос
/ 06 августа 2010

Ну, вы просто читаете по одному фрагменту за раз:

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;
}
...