Создание простого HTTP-клиента
В этой главе будет написана программа, которая может считывать файлы из Internet по HTTP протоколу и записывать их на диск.
Для связи с Internet в Visual C++ существует так называемый WinInet Class. В него входят несколько подклассов.
Далее представлены ксассы WinInet:
Классы |
Описание |
CInternetSession |
Создаёт Internet сессию. Все MFC WinInet приложения должны создавать CInternetSession объект перед использрванием других WinInet классов. |
CInternetConnection |
Создаёт коннект с Internet. Это базовый класс для классов CFtpConnection, CGopherConnection, и |
CHttpConnection.
CFtpConnection |
Устанавливает соединение по FTP протоколу. |
CGopherConnection |
Создаёт Gopher коннект. |
CHttpConnection |
Устанавливает соединение по HTTP протоколу. |
CInternetFile |
Разрешает удалённый доступ к файлам на Internet серверах. Это базовый класс для классов |
CGopherFile and
CHttpFile.
CGopherFile |
Разрешает удалённый доступ к файлам на Gopher серверах. |
CHttpFile |
Разрешает удалённый доступ к файлам на HTTP серверах. |
CFileFind |
Разрешает поиск файлов в Internet. Это базовый класс для классов |
CFtpFileFind and
CGopherFileFind.
CFtpFileFind |
Разрешает поиск файлов на FTP серверах. |
CGopherFileFind |
Разрешает поиск файлов на Gopher серверах. |
CGopherLocator |
Отыскивает Gopher устройство ввода позиций от gopher сервера. |
CInternetException |
Управляет исключениями, сгенерированными WinInet классом. |
Наша программа будет использовать четыре класса WinInet: CInternetSession, CInternetFile, CHttpFile и CHttpConnection
Далее будут описаны методы( функции ) этих классов:
Методы ( функции ) класса CInternetSession
Функции |
Описание |
Close() |
Закрывает Internet сессию. |
EnableStatusCallback() |
Разрешает использование функции повторного вызова, которая используется для асинхронных действий. |
GetContext() |
Получает значение контекста Internet сессии. |
GetFtpConnection() |
Устанавливает подключение по FTP протоколу. |
GetGopherConnection() |
Устанавливает подключение с Gopher серверами. |
GetHttpConnection() |
Устанавливает подключение по HTTP протоклолу. |
OnStatusCallback() |
Модифицирует состояние операции. |
OpenURL() |
Соединяется с данным URL. |
QueryOption() |
Сервис проверки ошибки провайдера. |
ServiceTypeFromHandle() |
Получает тип сервиса от Internet дескриптора. |
SetOption() |
Устанавливает опции Internet сессии. | <
br>
Методы ( функции ) класса CInternetFile
Функции |
Описание |
Abort() |
Закрывает файл и игнорирует все ошибки. |
Close() |
Закрывает файл. |
Flush() |
Сбрасывает файл на диск. |
Read() |
Счатывает байт из файла. |
ReadString() |
Считывает строку символов из файла. |
Seek() |
Переустанавливает указатель внутри файла. |
SetReadBufferSize() |
Устанавливает размер буфера для чтения. |
SetWriteBufferSize() |
Устанавливает размер буфера для записи. |
Write() |
Записывает байт в файл. |
WriteString() |
Записывает строку с нулевым символом в конце в файл. |
Методы ( функции ) класса CHttpFile
Функции |
Описание |
AddRequestHeaders() |
Добавляет заголовок к HTTP запросу. |
Close() |
Закрывает CHttpFile объект. |
GetFileURL() |
Получает URL файла. |
GetObject() |
Получает объект по HTTP запросу. |
GetVerb() |
Получает заголовок запроса. |
QueryInfo() |
Получает ответ или заголовок запроса. |
QueryInfoStatusCode() |
Получает код состояния HTTP запроса. |
SendRequest() |
Посылает HTTP запрос. |
Далее напишем код программы и разберём каждую строчку:
Содержание раздела