Как отправить get запрос на сайт?

 

Здравствуйте.

Столкнулся с такой проблемой, не могу никак понять принцип действия. Мне нужно из скрипта отправить на сайт get-запрос. В самом запросе всего три переменных передается, номер счета, баланс и средства.

Искал подходящий и достаточно простой пример того как это делается, но всюду нахожу достаточно сложные примеры для понимания, с отправкой либо скачивания файлов. Мне это все не нужно. Нужно просто отправить запрос и возможно получить ответ типа успешно или нет.

Приведите простейший пример, того как это реализуется с помощью библиотеки wininet.dll

 
какой смысл отправлять запрос, если вас не интересует ответ ?
 

Мне нужно отправлять данные на сайт, а там уже php-скрипт занесет их в базу. Это для мониторинга счетов.

 
WebProger:

Мне нужно отправлять данные на сайт, а там уже php-скрипт занесет их в базу. Это для мониторинга счетов.


))) Я тоже так мониторинг реализовал + еще некоторые плюшки. Удобно очень. Раньше на почту сообщения отправлялись, но не то это было...

Обновляются данные каждую минуту, а если данные на сервер три минуты не приходят - алерт в виде SMS от сервера...

 

То есть, что произойдет на той стороне, вас совершенно не интересует. Ни ответ сервера, ни коды возврата (ошибок)... Главное запулить данные по открытому каналу...

Прям как сисадмин на стрельбище.

ЗЫ. пардон, только обратил внимание на ник. Значит таки сисадмин.

 

Не сомневайтесь, пули попадут в цель, только стрелять пока нечем )))

 
ну как собрать гет запрос я надеюсь вы знаете с таким ником то ?
 
//+------------------------------------------------------------------+
//|                                                 InetFunction.mq4 |
//|                                 Copyright © 2011, XrustSolution. |
//|                                           mail: xrustx@gmail.com |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2011, XrustSolution."
#property link      "mail: xrustx@gmail.com"
//+------------------------------------------------------------------+
//|     Defines                                                        |
//+------------------------------------------------------------------+
#define HTTP_QUERY_CONTENT_LENGTH 0x00000005
#define HTTP_QUERY_FLAG_NUMBER    0x20000000
//----
#define INTERNET_OPEN_TYPE_DIRECT       0
#define INTERNET_OPEN_TYPE_PRECONFIG    0x00000000   // use registry configuration
#define INTERNET_FLAG_RELOAD            0x80000000
#define INTERNET_FLAG_NO_CACHE_WRITE    0x04000000
#define INTERNET_FLAG_PRAGMA_NOCACHE    0x00000100
//----
#define AGENT "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; Q312461)"
//+------------------------------------------------------------------+
//|     Export Function from WINAPI                                    |
//+------------------------------------------------------------------+
#import "wininet.dll"
        int InternetAttemptConnect (int x);
        int InternetOpenA                                       ( string sAgent, int lAccessType, string sProxyName, string sProxyBypass, int lFlags );
        int InternetOpenUrlA                            ( int hInternetSession, string sUrl, string sHeaders, int lHeadersLength, int lFlags, int lContext );
        int InternetReadFile                            ( int hFile, int& lpvBuffer[], int lNumBytesToRead, int& lNumberOfBytesRead[] );
        int InternetCloseHandle                 ( int hInet );
        int InternetQueryDataAvailable  ( int hFile, int& lpdwNumberOfBytesAvailable[], int dwFlags, int dwContext );
        int HttpQueryInfoA                                      ( int hRequest, int dwInfoLevel, int& lpvBuffer[], int& lpdwBufferLength[], int& lpdwReserved[] );
#import
//+------------------------------------------------------------------+
//|                                 Function  :                   InetToString |
//|                                 Copyright © 2010, XrustSolution. |
//|                                           mail: xrustx@gmail.com |
//+------------------------------------------------------------------+
int InetToString(string fUrl, string &out){Print("URL :",fUrl);Print("IN DATA",out);
   if(!IsDllsAllowed()){
     Alert("Must be configured to allow the use of DLL");
     return(1001);
   }
   int rv = InternetAttemptConnect(0);
   if(rv != 0){
     Print("Error when calling InternetAttemptConnect ()");
     return(1002);
   }
   int hSession = InternetOpenA(AGENT, INTERNET_OPEN_TYPE_DIRECT, "0", "0", 0);
   if(hSession <= 0){
     Print("Error when calling InternetOpenA()");
     return(1003);         
   }    
        int hReq = InternetOpenUrlA(hSession, fUrl, "0", 0,
                                                                        INTERNET_FLAG_NO_CACHE_WRITE |
                                                                        INTERNET_FLAG_PRAGMA_NOCACHE |
                                                                        INTERNET_FLAG_RELOAD, 0
                                                                        );
   if(hReq <= 0){
     Print("Error when calling InternetOpenUrlA()");
     InternetCloseHandle(hSession);
     return(1004);
   }
   int cBuffer[256];
   ArrayInitialize(cBuffer,0);
   int dwBytesRead[1]; 
   ArrayInitialize(dwBytesRead,0);
   string TXT = "";
   while(!IsStopped()){
        bool bResult = InternetReadFile(hReq, cBuffer, 1024, dwBytesRead);
        if(dwBytesRead[0] == 0)break;
        string text = "";   
        for(int i = 0; i < 256; i++){
                text = text + CharToStr(cBuffer[i] & 0x000000FF);
                        if(StringLen(text) == dwBytesRead[0])break;
                        text = text + CharToStr(cBuffer[i] >> 8 & 0x000000FF);
                        if(StringLen(text) == dwBytesRead[0])break;
                text = text + CharToStr(cBuffer[i] >> 16 & 0x000000FF);
                if(StringLen(text) == dwBytesRead[0])break;
                text = text + CharToStr(cBuffer[i] >> 24 & 0x000000FF);
                if(StringLen(text) == dwBytesRead[0])break;
                }
        TXT = TXT + text;
        Sleep(1);
        }
   if(StringFind(TXT,"<html>",0)>=0||StringFind(TXT,"<HTML>",0)>=0||StringFind(TXT,"<title>",0)>=0||StringFind(TXT,"<head>",0)>=0){
        if(StringFind(TXT,">404",0)>=0){return(404);}
   }  
   out = TXT;  
        InternetCloseHandle(hReq);
        InternetCloseHandle(hSession);  
        //Print("ServerAnswer:",out);                                                                           
        return(0);         
}
 

Для сброса ссылок в файл, делал так:

string Update = StringConcatenate(Site,"update.php?acc=",Number,"&equity=",Equity,"&balance=",Balance); 

Я могу передать в качестве fUrl в фугкцию InetToString(); строку с ссылкой на сайт, сразу с параметрами?

А вторая переменная string &out для чего?

 
в нее получаете ответ серверного скрипта, а функция возвращает номер ошибки.
 

В качестве второго параметра передаю сейчас пустую строку. Данные попали точно в цель.

Благодарю за помощь.

Причина обращения: