C++ C++ C# C# ASP.NET Security ASP.NET Security ASM ASM Скачать Скачать Поиск Поиск Хостинг Хостинг  
  Программа для работы с LPT портом...
Язык: .NET — ©Alexey...
  "ASP.NET Atlas" – AJAX в исполнении Micro...
Язык: .NET — ©legigor@mail.ru...
  "Невытесняющая" Многопоточность...
Язык: C/C++ — ©...
  01.05.2010 — Update World C++: Сборник GPL QT исходников
  15.12.2007 — Весь сайт целиком можно загрузить по ссылкам из раздела Скачать
Хостинг:
Windows 2003, ASP.NET 2.0
бесплатный и от 80 руб./мес


   Отправить письмо
Кулабухов Артем, Беларусь




 264 - Попробуем WinInet / MFC шаг за шагом / Visual C++

Шаг 264 - Попробуем WinInet

Итак, давайте создадим приложение, которое умеет использовать WinInet на основе протокола HTTP. Создаем приложение как AppWizard на базе диалогового окна с именем TestHTTP. На диалоговую панель поставим кнопку с именем GO и привяжем к ней функцию:

void CTestHTTPDlg::OnButton1() 
{
	// TODO: Add your control notification handler code here
	
}

Итак. Нам нужно создать объект сессии интернет. Но сначало подключить заголовочный файл.

// TestHTTPDlg.cpp : implementation file
//

#include "stdafx.h"
#include "TestHTTP.h"
#include "TestHTTPDlg.h"

#include "afxinet.h"
......

А вот теперь и сессию:

void CTestHTTPDlg::OnButton1() 
{
	CInternetSession session;
}

После этого мы можем указать протокол соединения и адрес узла.

void CTestHTTPDlg::OnButton1()
{
	CInternetSession session;
	CHttpConnection* pHttpCon = session.GetHttpConnection("http://www.mysite.int/");
}

Теперь нужно сформировать запрос к узлу:

void CTestHTTPDlg::OnButton1() 
{
	......
	CHttpConnection* pHttpCon = session.GetHttpConnection("http://www.mysite.int/"); 	
	CHttpFile* pFile=pHttpCon->OpenRequest("GET","default.htm");
	pFile->AddRequestHeaders("User-Agent: MyProgramm\r\n");  
}

И отослать запрос:

void CTestHTTPDlg::OnButton1() 
{
	......	
	CHttpFile* pFile=pHttpCon->OpenRequest("GET","default.htm");
	pFile->AddRequestHeaders("User-Agent: MyProgramm\r\n");  
	pFile->SendRequest(); 
}

Сервер в ответ пошлет информацию. Ее надо получить:

void CTestHTTPDlg::OnButton1() 
{
	......
	pFile->AddRequestHeaders("User-Agent: MyProgramm\r\n");  
	pFile->SendRequest(); 
	CString stLine;
	pFile->ReadString(stLine);
	AfxMessageBox(stLine); 
}

Если Вы запустите приложение, то после установки связи увидите диалоговое окно со строкой HTML. Действительно обычно это первый тег. Я немного усложнил программу, чтобы читать не одну, а много строк. Поместил на диалоговую панель ListBox, привязал к нему класс. И вот так изменил код программы.

void CTestHTTPDlg::OnButton1() 
{
	CInternetSession session;
	CHttpConnection* pHttpCon = session.GetHttpConnection("http://www.mysite.int/"); 	
	CHttpFile* pFile=pHttpCon->OpenRequest("GET","default.htm");
	pFile->AddRequestHeaders("User-Agent: MyProgramm\r\n");  
	pFile->SendRequest(); 
	CString stLine;
	while (pFile->ReadString(stLine)!=FALSE)
	{
		m_List.AddString(stLine); 
	}
}

А вот так выглядит окно во время работы:

264.gif (3828 b)


| |
Автор Каев Артем.
[AD]