WebRequest и порты отличные от 80 и 443, как использовать в МТ4?

 

Добрый день, есть необходимость использовать доступ к сайту по такой ссылке http://90.156.230.224:7777/shop-ea.ru

Каким образом реализовать доступ через Webrequest? 


Он выдает мне ошибку 5200 в МТ4, в МТ5 такая ссылка работает правильно!

В настройках терминала я в разрешенные Webrequest добавлял и вот так  http://90.156.230.224:7777/shop-ea.ru и  http://90.156.230.224:7777 и   http://90.156.230.224

В МТ4 не хочет работать с такими адресами :-(


2023.01.01 12:50:19.117 Quantitative Analysis EA BITCOIN,H1: WebRequest error:  (5200) Repeat: 5 URL: http://90.156.230.224:7777/shop-ea.ru

Использую для GET запросов вот такое решение:

string            GET(string sURL_ADD,string sgetUrl)
     {
      string strData= "";
      bool bSuccess = false;

      string cookie=NULL,headers=NULL;
      int res=-1;
      char post[],result[];
      string m_buffer=NULL;

      ResetLastError();
      int j=0;

      while(!IsStopped() && j<5)
        {

         int itimeout=5000; //--- timeout менее 1000 (1 сек.) недостаточен при низкой скорости Интернета сделан таймаут в 5 секунд
         //urlencode(
         ResetLastError();

         res=WebRequest("GET",sgetUrl,cookie,NULL,itimeout,post,0,result,headers);

         //--- проверка ошибок
         int ierror=GetLastError();

         if(res==-1)
           {
            string serror="";
                //--- возможно, URL отсутствует в списке, выводим сообщение о необходимости его добавления
            if(ierror==4060 || ierror==4014)
              {
               g_bWWW=false;
               if(TerminalInfoString(TERMINAL_LANGUAGE)=="Russian")
                  serror=StringFormat("Необходимо добавить адрес: %s в список разрешенных URL на вкладке 'Советники' в меню Сервис - Настройки",sURL_ADD);
               else
                  serror=StringFormat("You need to add the address: %s to the list of Allow WebRequest URLs on the 'Expert Advisors' tab in menu Tools - Options",sURL_ADD);

               MessageBox(serror,"Error",MB_ICONERROR|MB_OK);
               break;
              }

            PrintFormat("WebRequest error: %s (%d) Repeat: %d URL: %s",serror,ierror,j+1,sURL_ADD);
           }
         else
           {
            g_bWWW=true;

            string sBuffer=CharArrayToString(result,0,WHOLE_ARRAY,CP_UTF8); //сохраним в UTF8

            if(sBuffer!="")
              {

               m_buffer=sBuffer;
               StringReplace(m_buffer,"\"","");//уберем \"
               return m_buffer;
              }
            Sleep(5000); //таймаут при ошибках чтения
           }

         j++;
        }


      return            m_buffer;
     }
 

Из документации

Для использования функции WebRequest() следует добавить адреса серверов в список разрешенных URL во вкладке "Советники" окна "Настройки". Порт сервера выбирается автоматически на основе указанного протокола - 80 для "http://" и 443 для "https://".

 
А что если подключиться к серверу через сокет, как здесь https://www.mql5.com/ru/docs/network/socketcreate&nbsp;
 
Возможно, удалённый сервер не поддерживает сокеты. Я бы по старинке использовал wininet.dll