Вот пытаюсь написать программу, которая бы тащила с сайта(в данном случае mail.ru) HTML код, и потом обрабатывала, но проблема в том, что после отправки пакета не вызывается OnReceive(). Базовый класс сокета CAssyncSocket.
Вот метод отправки сообщения:
int CClientSocket::SendPacket(char *link)
{
int ipacket,res;
CString packet,lnk;
lnk=link;
packet="GET ";
packet+=lnk;
packet+=" HTTP/1.1\r\n Host: mail.ru\r\n Connection: Keepa-Alive\r\n \r\n";
ipacket=packet.GetLength();
res=Send(LPCTSTR(packet),ipacket);
return res;
}
А вот метод Init()
void CClientSocket::Init()
{
bool res;
Create();
res=Connect("217.69.128.42",80);
}
А вот собственно метод, вызываемый после нажатия на кнопку:
void Ctrysocket1Dlg::OnGO()
{
clint.Init();
clint.SendPacket("http://www.mail.ru");
}
Что не так или может я вообще пытаюсь штаны через голову одеть и надо делать по другому?
Здравствуйте, TerminalSoul, Вы писали:
TS>Что не так или может я вообще пытаюсь штаны через голову одеть и надо делать по другому?
Я делал это через IXMLHTTPRequest
Здравствуйте, TerminalSoul, Вы писали:
TS>Что не так или может я вообще пытаюсь штаны через голову одеть и надо делать по другому?
по запросу в гугле MFC html request сразу выдаются нужные результаты:
To communicate with an HTTP server, you must first create an instance of CInternetSession, and then create a CHttpConnection object. You never create a CHttpConnection object directly; rather, call CInternetSession::GetHttpConnection, which creates the CHttpConnection object and returns a pointer to it.
Здравствуйте, TerminalSoul, Вы писали:
TS>TS> packet+=" HTTP/1.1\r\n Host: mail.ru\r\n Connection: Keepa-Alive\r\n \r\n";
TS>
В этой строке точно пробелов лишних нет? Особенно между двумя \r\n