Шаг 42 - Попробуем CInternetFile

Создание проекта

Используем процедуру нажатие клавиши кнопки из прошлого шага.

Создаем код

Объявление заголовков функций.

#include "afxwin.h"
#include "afxinet.h" // функции работы с классами для интеренет.
#include "resource.h" // ссылка на ресурсы

Изменение реакции на нажатие кнопки.

void CTestDlg::OnSend()
{
CInternetSession session; // класс для сессии
CInternetFile* file = NULL; // класс для файла
try // ошибки обрабатывает исключительная ситуация
{
file = (CInternetFile*) session.OpenURL("http://www.firststeps.ru/"); // попытка открыть
if (file) // если открыли
{
CString line;
file->ReadString(line); // читать строку
AfxMessageBox(line); // показывать
file->Close(); // закрыть файл
delete file; // удалить файл
}
else AfxMessageBox("Not Server :-("); // нет сервера
}
catch(...) // была ошибка (может инет не подключен ?)
{
AfxMessageBox("Error Session");
}
}

Описание

Первыми делом подключим функции для работы с соединением. Это и сделано в первых строках. Первыми делом подключим функции для работы с соединением. Это и сделано в первых строках. CInternetSession класс, обеспечивающий соединение. Вот его мы и объявляем, для того, чтобы потом воспользоваться его умением производить соединение, вообще у конструктора этого класса существуют параметры (это так для введения). Следующая строка ссылка на класс CInternetFile, заметьте, что он объявлен как пустая ссылка. В дальнейшем он будет создан при открытии страницы. Этот класс является базовым для высокоуровневых классов CHttpFile и CGopherFile поэтому мы его и попробуем. В случае успешности проведения OpenURL куда передаем имя сервера и страницы, она вернет указатель на файл с которым можно проводить операции чтения. ReadString читает строку. После работы файл необходимо закрыть. Это вообще как аксиома открыл - закрыл.

try это обработка исключительных ситуаций. В случае ошибке OpenURL, например по причине отсутствия страницы данная функция вызовет исключительную ситуацию. В блоке catch(...) мы это исключение и ловим, для того чтобы известить Вас о этой неудаче. Собирайте программу, устанавливайте соединение и запускайте. Как Вы думаете, что появится ? HTML. Вроде это логично :-). Вообще работа в Internet стоит отдельных шагов. И это просто демонстрация возможностей.

Шпаргалка

Классы для работы с Internet используют механизм исключительных ситуаций. Обработайте их, дабы не вводить пользователя в глубокое изумление.

try 
{
..........
}
catch(...)
{
..........
}

Объявите классы.

#include "afxinet.h"		// функции работы с классами для интеренет.

Создайте объекты классов.

CInternetSession session;	// класс для сессии.
CInternetFile* file = NULL; // класс для файла.

Установите связь.

file = (CInternetFile*) session.OpenURL("http://www.firststeps.ru/"); // попытка открыть

Загрузить проект | Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 02.10.99 (обновлено 8.07.2001)