Шаг 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.firststeps.ru/");
}

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

void CTestHTTPDlg::OnButton1() 
{
	......
	CHttpConnection* pHttpCon = session.GetHttpConnection("http://www.firststeps.ru/"); 	
	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.firststeps.ru/"); 	
	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)


Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем.