Функция, занимающаяся коннектом
#include заголовок
wxString MyClass::GetPageContent()
{
wxHTTP *con = new wxHTTP();
con->SetHeader("User-Agent", юзер агент);
con->SetHeader("Host", хост);
con->SetHeader("Accept", "text/html");
con->SetHeader("Accept-Language", "ru-RU,ru;q=0.9,en;q=0.8");
con->SetHeader("Accept-Encoding", "gzip, deflate");
con->SetHeader("Connection", "Keep-Alive");
con->Connect(хост);
//wxFileOutputStream fileStream("C:\\1.gzip");
//fileStream.Write(*(con->GetInputStream("/")));
//fileStream.Close();
wxByte buf[30000];
wxZlibInputStream inStream(con->GetInputStream("/"), wxZLIB_GZIP);
inStream.Read(buf, 30000);
wxString resp(buf);
con->GetResponse();
wxDELETE(con);
return resp;
}
Консолька
#include "App.h"
bool MyApp::OnInit()
{
MyClass *client = new MyClass();
wxPuts(client->GetPageContent());
return true;
}
Если убрать код, занимающийся распаковкой gzip и записью распакованного содержимого в буфер, а взамен раскомментировать 3 строчки, то на хард успешно запишется файл 1.gzip (5кб), распаковав который архиватором получается файл без расширения (11кб), который содержит в себе нужную страницу. Несмотря на это запись файла в 5кб происходит подозрительно небыстро (может, около 5 сек +-): почти мгновенно появляется файл в 4кб и уже под конец еще кб добавляется и консолька завершает свою работу.
MinGW, Win7 Sp1 Pro, CodeLite IDE 3.0.5045, wxWidgets 2.9.2 (unicode=on)