Verileri mql4'te hash etmeyi öğrenin - sayfa 4

 
Reshetov :

Aslında, GET ve POST isteklerinde her şey şu şekilde iletilir: id=değer, yani. eşittir işaretiyle ayrılmış parametre adı ve değeri. Ayrıca, Latin harfleri ve sayıları olmayan tüm karakterler % (karakter kodu) ile kodlanmıştır.

orada bir şey yok, anladım, bu da işe yaramıyor:

   if (!HttpSendRequestA(hReq, NULL , 0 , request, len))
  {
     return ( false );
  }
 

Muhtemelen araştırmamla buradaki üstatçıdan bıktım, bir şey söylersen manastıra gideceğim.

Not: sonunda kod bitcoinler üzerinde çalışacak

 
teşekkür ederim
 
sanyooooook :

bana mı soruyorsun?

Görmek örnek: https://www.mql5.com/ru/articles/276
 //------------------------------------------------------------------ SendData
bool SendData( string file, string mode)
{
   string smb= Symbol ();
   string Head= "Content-Type: application/x-www-form-urlencoded" ; // заголовок
   string Path= "/mt5swap/metaswap.php" ; // путь к странице
   string Data= "server=" + AccountInfoString ( ACCOUNT_SERVER )+
               "&pair=" +smb+
               "&long=" +DTS( SymbolInfoDouble (smb, SYMBOL_SWAP_LONG ))+
               "&short=" +DTS( SymbolInfoDouble (smb, SYMBOL_SWAP_SHORT ));

  tagRequest req; // инициализация параметров
   if (mode== "GET" )  req.Init(mode, Path+ "?" +Data, Head, "" ,   false , file, true );
   if (mode== "POST" ) req.Init(mode, Path,          Head, Data, false , file, true );

   return (INet.Request(req)); // посылаем запрос на сервер
}
 
Reshetov :
Görmek örnek: https://www.mql5.com/ru/articles/276

bu bile çalışmıyor:

 #import "wininet.dll"
         int InternetAttemptConnect( int x);
   int InternetOpenA( string sAgent, int lAccessType, string sProxyName= "" , string sProxyBypass= "" , int lFlags = 0 );
         int InternetConnectA( int hInternet, string lpszServerName, /*WORD*/ int nServerPort, string lpszUsername, string lpszPassword, int dwService, int dwFlags,   int dwContext);
   int HttpOpenRequestA( int hConnect, string lpszVerb, string lpszObjectName, string lpszVersion, string lpszReferer, string lplpszAcceptTypes, int dwFlags, int dwContext);
   int HttpSendRequestA( int hRequest, string lpszHeaders, int dwHeadersLength, int & lpOptional[], int dwOptionalLength);
   int InternetCloseHandle( int hInet);
#import

#define INTERNET_OPEN_TYPE_PRECONFIG   0    // use registry configuration
#define INTERNET_FLAG_KEEP_CONNECTION   0x00400000    // use keep-alive semantics
#define INTERNET_SERVICE_HTTP   3

//+------------------------------------------------------------------+
int start()
{
         string Host= "https://secure.indx.ru" ;
         string Path= "https://secure.indx.ru/api/v1/tradejson.asmx" ;
        
         // читаем данные 
         int h= FileOpen ( "text.txt" , FILE_BIN | FILE_READ ); if (h< 0 ) return ;
         FileSeek (h, 0 , SEEK_SET );       int size= MathFloor ( FileSize (h)/ 4 );
         int data[], i= 0 ;         ArrayResize (data, size); // изменили размер
         while (! FileIsEnding (h)) { data[i]= FileReadInteger (h, LONG_VALUE); i++; }
         FileClose (h); // 
         // выводим прочитанный массив для проверки
         string st= "" ;
         for (i= 0 ; i<size; i++) 
        {
                st=st+CharToStr(data[i]& 255 ); st=st+CharToStr(data[i]>> 8 & 255 ); 
                st=st+CharToStr(data[i]>> 16 & 255 ); st=st+CharToStr(data[i]>> 24 & 255 ); 
        }
         Print ( "Размер файла: " +size* 4 + "  байт" );
         Print ( "Данные: " +st);
        
         int hInternetSession, hConnectHandle, hResourceHandle, result;
         if (InternetAttemptConnect( 0 )!= 0 ) { Print ( "error InternetAttemptConnect" ); return ( 0 ); }
        hInternetSession=InternetOpenA( "Microsoft Internet Explorer" ,  INTERNET_OPEN_TYPE_PRECONFIG, "" , "" , 0 ); 
         if (hInternetSession<= 0 ) { Print ( "error InternetOpenA()" ); return ( 0 ); }
        
        hConnectHandle=InternetConnectA(hInternetSession, Host, 80 , "" , "" , INTERNET_SERVICE_HTTP, 0 , 0 ); 
         if (hConnectHandle<= 0 ) { Print ( "error InternetConnect()" ); return ( 0 ); }
        
        hResourceHandle=HttpOpenRequestA(hConnectHandle, "POST" , Path, "" , "" , "" , INTERNET_FLAG_KEEP_CONNECTION, 0 ); 
         if (hResourceHandle<= 0 ) { Print ( "error HttpOpenRequest()" ); return ( 0 ); }
        
        result=HttpSendRequestA(hResourceHandle, "Content-Type: application/x-www-form-urlencoded" , 47 , data, size);
         Print (result);
         if (result<= 0 ) { Print ( "error HttpSendRequestA()" ); return ( 0 ); }
        
        InternetCloseHandle(hResourceHandle);
        InternetCloseHandle(hConnectHandle);
        InternetCloseHandle(hInternetSession);
}
//+------------------------------------------------------------------+
 
Reshetov :
Görmek örnek: https://www.mql5.com/ru/articles/276

Bana öyle geliyor ki json burada da çalışmayacak.

varsayılan parametrelerle başlatıldı, yuvarlanmıyor, gönderi gönderme işlevinde hata

HttpSendRequestwW
 
ve bana öyle geliyor ki sorun bu fonksiyonda, yorumlara bakılırsa tek başına benim için çalışmıyor
 
sanyooooook :
ve bana öyle geliyor ki sorun bu fonksiyonda, yorumlara bakılırsa tek başına benim için çalışmıyor
https://www.mql5.com/en/articles/276
 

Yazıya baktım, şöyle bir gönderme var: server=Metaquotes&pair=EURUSD&bid=1.4512&time=13286794

json formatında göndermem gerekiyor. anladığım kadarıyla her şey aynı, sadece kırmızı çizgi yerine, parametreleriyle birlikte burada: {"Giriş":"","Wmid":"","Kültür":"","İmza" :""}

gönderme devam ederse, en azından isteğin doğru olmadığı, bunun yerine sessizlik olduğu bir hatayı geri alırdım.

 
sanyooooook :

Yazıya baktım, şöyle bir gönderme var: server=Metaquotes&pair=EURUSD&bid=1.4512&time=13286794

json formatında göndermem gerekiyor. anladığım kadarıyla her şey aynı, sadece kırmızı çizgi yerine, parametreleriyle birlikte burada: {"Giriş":"","Wmid":"","Kültür":"","İmza" :""}

iyi yani evet. Umarım gönderme yöntemini (POST) ve içindeki veri biçimini (sizin durumunuzda json) karıştırmıyorsunuzdur.

gönderme devam ederse, en azından isteğin doğru olmadığı, bunun yerine sessizlik olduğu bir hatayı geri alırdım.

San, kendine biraz ip at Charles. Neden böyle acı çekiyorsun :)