// soapTest.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include #include #include #pragma comment(lib,"wininet.lib") class CInternet { CInternetSession *session;//("My Session"); CHttpConnection* pServer;// = NULL; CHttpFile* pFile;// = NULL; char strObject[100000]; DWORD dwRet;// = 0; char szBuff[100000]; char szHeaders[100000]; public: ~CInternet(){ delete session; } CInternet::CInternet() { session = new CInternetSession("My Session"); pServer = NULL; pFile = NULL; dwRet = 0; } std::vector Lookup(const char *query) { //assumes server, port and URL names have been initialized std::vector strRet; try { CString strServerName = "www.google.com"; INTERNET_PORT nPort = 80; sprintf(strObject , "/search?q=%s",query); pServer = session->GetHttpConnection(strServerName, nPort); pFile = pServer->OpenRequest(CHttpConnection::HTTP_VERB_GET, strObject); pFile->AddRequestHeaders(szHeaders); pFile->SendRequest(); pFile->QueryInfoStatusCode(dwRet); if (dwRet == HTTP_STATUS_OK) { UINT nRead = pFile->Read(szBuff, 100000); strlwr(szBuff); while (nRead > 0) { char seps[] = "

"; int totI=0; while(1) { int i=0,j=0; try{ if((i=strstr(&szBuff[totI],seps)-szBuff)<=0) break; i+=11; if((j=strstr(&szBuff[i],seps2)-szBuff)<=0) break; totI = j; } catch(...) { break; } char bufftemp[100000]; ZeroMemory(bufftemp,100000); for(int x=i;xRead(szBuff, 100000); strlwr(szBuff); } } delete pFile; delete pServer; } catch (CInternetException* pEx) { } session->Close(); return strRet; } }; void main() { CInternet ci; std::vector ret; ret = ci.Lookup("game programming -amit"); std::vector::iterator i = ret.begin(); for(;i!=ret.end();i++) printf("%s\n",(*i).c_str()); }