http://tikitak.narod.ru ---- Главная страница сайта
Шаг 42 - Попробуем CInternetFile
Создание проекта
Используем процедуру нажатие клавиши кнопки из предыдущего шага.
Создаем код
Обьявление функций
#include "afxinet.h"
Изменение реакции на нажатие кнопки
void CTestDlg::OnSend()
{
CInternetSession session;
CInternetFile* file = NULL;
try
{
file = (CInternetFile*) session.OpenURL("http://www.mjk.msk.ru/~dron/cpp/");
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, например по причине отсутствия страницы данная функция вызовет иcключительную ситуацию. В блоке catch(...) мы это исключение и ловим, для того чтобы известить Вас о этой неудаче.
Собирайте программу, устанавливайте соединение и запускайте. Как Вы думаете, что появится ? HTML !!! Вроде это логично :-).
Вообще работа в Internet стоит отдельных шагов. И это просто демоснтрация возможностей.
Шпаргалка
Классы для работы с Internet используют механизм исключительных ситуаций. Обработайте их, дабы не вводить пользователя в глубокое изумление.
try
{
..........
}
catch(...)
{
..........
}
Обьявите классы
#include "afxinet.h"
Создайте переменные
CInternetSession session;
CInternetFile* file = NULL;
Установите связь
file = (CInternetFile*) session.OpenURL("http://www.mjk.msk.ru/~dron/cpp/");
Предыдущий Шаг | Следующий Шаг | Оглавление By Artem.
Используются технологии uCoz
|