Научите хешировать данные на mql4 - страница 4

 
Reshetov:

Вообще-то что в GET, что в POST запросах всё передаётся в виде: id=value, т.е. имя параметра и значение через знак равенства. Плюс ко всему все символы, которые не являются буквами латиницы и цифрами кодируются через %(код символа).

что-то там не ладом, разбираюсь, вот это ни как не проходит:

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

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

ЗЫ: в конечном счёте на битках код работать будет

 
сыпасибо
 
sanyooooook:

ты меня спрашиваешь?

Cм. пример: 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:
Cм. пример: https://www.mql5.com/ru/articles/276

даже это не катит:

#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:
Cм. пример: https://www.mql5.com/ru/articles/276

сдаётся мне  что json тут тоже не прокатит.

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

HttpSendRequestwW
 
и сдаётся мне что проблема в этой функции, судя по комментам не у меня одного не работает
 
sanyooooook:
и сдаётся мне что проблема в этой функции, судя по комментам не у меня одного не работает
https://www.mql5.com/ru/articles/276
 

я смотрел статью, там идет отправка типа: server=Metaquotes&pair=EURUSD&bid=1.4512&time=13286794

мне нужно отправлять в формате json. на сколько я понял всё тоже самое только вместо красной строки вот это со своими параметрами: {"Login":"","Wmid":"","Culture":"","Signature":""}

если бы отправка шла то мне хотя бы возвращалась шибка о том что запрос не верный, но в место этого тишина.

 
sanyooooook:

я смотрел статью, там идет отправка типа: server=Metaquotes&pair=EURUSD&bid=1.4512&time=13286794

мне нужно отправлять в формате json. на сколько я понял всё тоже самое только вместо красной строки вот это со своими параметрами: {"Login":"","Wmid":"","Culture":"","Signature":""}

ну дык да.  ты ж я надеюсь не путаешь метод отправки (POST) и формат данных в ней (json в твоем случае)

если бы отправка шла то мне хотя бы возвращалась шибка о том что запрос не верный, но в место этого тишина.

Сань, ну поставь ты себе уже какой-нить Charles.  Что ж ты мучаешься то так :)

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