Короч стоит задача такая, используя сишку нуно отправить информация на сервак на php, какойнибуть такой запрос http://host.ru/script.php?id=ok Вопрос в следующем как это сделать? может есть какието функции втроеные? CppWebBrowser использовать както не оч эстетично! Или может прост кто подскажет как это через cmd сделать? тогда можно будет обойтись system();
Code: #include <afxinet.h> ... void SendGetRequest(CString szHostName, CString wts) { CInternetSession session; CHttpConnection* pConnection = NULL; CHttpFile* pFile = NULL; UINT buff_size = 2048; char* buffer = new char[buff_size]; UINT nBytesRead = 0; try { pConnection = session.GetHttpConnection(szHostName, (INTERNET_PORT)80); pFile = pConnection->OpenRequest(1, wts); // 1 = GET pFile->SendRequest(); nBytesRead = pFile->Read(buffer, buff_size - 1); buffer[nBytesRead] = '\0'; // запрошенная страница AfxMessageBox(buffer); } catch(CInternetException* e) { // Обрабатываешь исключение ... AfxMessageBox("Error!"); e->Delete(); } if(pFile) delete pFile; if(pConnection) delete pConnection; delete [] buffer; } ... http://192.168.50.2/2/1.php?id=1&test=1 вызывать вот так: Code: SendGetRequest("192.168.50.2", "/2/1.php?id=1&test=1");
Это ты под Microsoft Visual писал? прост в Buildere нет такой библиотеки, а Microsoft незнает че такое AfxMessageBox Мне нужно это в кансольном режиме, потомуш с визуалкой в buildere элементарно делаеться!
TaNkist а через telnet как? и получиться ли сделать на бесплатный хост? а и еще есле telnet делать там же над несколько команд писать, a system() выполняет команду которая в ней вписана и закрывает cmd !
оччень странно ... ну можно обойтись и без AfxMessageBox PS: в следующий раз указывай явно среду разработки - а не " используя сишку" PPS: для Dephi/С++ есть хорошие справочники, ссылки тут, и вот в справочнике для Delphi есть статейка "Как отправить вебформу на сервер при помощи TClientSocket (напрямую и через прокси)". Так что если используешь Dephi/Builder - RTFM (F=Following)
Deem3n® в Builder я знаю как это делаеться с помощью CppWebBrowser, прост мне нужно чеб в кансольке это все сделать, без визуалки! а TClientSocket эт тож с визуалкой! незнаеш можно послать через system() телнетом?
Code: #include <wininet.h> ... BOOL HttpGetRequest(LPSTR lpszHost, LPSTR lpszGetRequest) { BOOL bResult = FALSE; HINTERNET hInet = InternetOpen(NULL, INTERNET_OPEN_TYPE_DIRECT | INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0); if (hInet) { HINTERNET hConnect = InternetConnect(hInet, lpszHost, INTERNET_DEFAULT_HTTP_PORT, NULL, NULL, INTERNET_SERVICE_HTTP, 0, 0); if (hConnect) { HINTERNET hRequest = HttpOpenRequest(hConnect, NULL, lpszGetRequest, NULL, NULL, NULL, 0, 0); if (hRequest) { char szHeaders[64]; // Дополнительные заголовки wsprintf(szHeaders, "Referer: %s\r\nHost: %s", lpszHost, lpszHost); bResult = HttpSendRequest(hRequest, szHeaders, lstrlen(szHeaders), NULL, 0); InternetCloseHandle(hRequest); } InternetCloseHandle(hConnect); } InternetCloseHandle(hInet); } return bResult; } Юзать так же, как и в примере который привёл Deem3n®. ps Кодил не на Builder'е, поэтому возможно тебе придётся немного подправить код ...
на самом деле чтобы хотябы разобраться в вопросе, хватит обыкновенного сниффера. неважно на чем кодишь, на си, делфе асме или васике. просто смотришь что отсылает бровсер и все. аналогично делаешь в своей софтине.
sn0w я знаю че отсылает браузер, вопрос стоял в том че какими функциями это сделать из exe файла! Raider спасиб! потихоньку разбираюсь...