Для работы с Интернетом в Visual C++ есть классы WinInet - Windows Internet Externsion. Они необходимы, чтобы упростить работу с интернетом не вдаваясь в подробности работы с сокетами и протоколом TCP/IP. Для работы с классами WinInet описание их нужно подключить: #include "afxinet.h".
Основой является класс - это класс CInternetSession. Он используется для установки связи и инициализации соединения. Работа начинается с создания объекта сессии. Параметров у конструктора много, но самое интересное, что они могут быть все по умолчанию. Вот небольшой примерчик :
CInternetSession se("My Session");
Следующим шагом будет создание объекта CStdioFile.
CStdioFile* pFile = NULL;
При открытии сессии вернется указатель этого класса. Вернувшийся указатель нужно проверить на NULL. Вот как можно это сделать
CStdioFile* pFile = NULL;
pFile = se.OpenURL("http://www.firststeps.ru/");
if (pFile != NULL)
{
// Все OK - можно работать
}
А строки читаем вот как:
{
pFile->ReadString(cs);
pFile->Close();
}
В данном случае появится только одна первая строка HTML. При необходимости прочитать весь документ можно сделать так.
while(pFile->ReadString(cs))
{
........ // и читаем...
}
После получения файла сессию нужно закрыть.
se.Close();
WinInet может намного больше если ,например, перехватить виртуальную функцию OnStatusCallBack для получения информации о ходе соединения:
virtual void OnStatusCallback( DWORD dwContext,
DWORD dwInternetStatus, LPVOID lpvStatusInformation,
DWORD dwStatusInformationLength );
Так же класс CInternetSession умеет устанавливать специфические соединения. Обращения к таким соединениям производится идеологически, также создается файл и ему присваивается указатель соединения, но только для каждого типа соединения свой класс.
GetGopherConnection -> CGopherFileFind
GetHttpConnection -> CHttpFile
GetFtpConnection -> CFtpConnection
Функции связанные с работой WinInet находятся в WININET.DLL. То есть она должна быть в системе для корректной работы, а если у тебя нету ее - беги на рынок и покупай :)