Ошибка sending request to protector server error (3-3, #0)

 

Ошибка возникает при отправке экспертов в сервис Cloud Protector.


Стала проявляться 2 недели назад.

Причем проблема проявляется только у тяжелых советников с большим функционалом и графикой внутри. Легкие файлы защищаются без вопросов. 


В чем может быть проблема? 

 

Методом научного тыка удалось выяснить, что ошибка возникает, из-за кода. 

У меня библиотека wininet_dll.mqh    со следующим блоком 


int WebRequest123(const string   method,// метод HTTP                   //Первая функция вызывает следующую
                const string   url,// url-адрес
                const string   cookie,// cookie
                const string   referer,// referer
                int            timeout,// таймаут
                char           &data[],// массив тела HTTP-сообщения
                int            data_size,// размер массива data[] в байтах
                char           &result[],// массив с данными ответа сервера
                string         &result_headers)// заголовки ответа сервера
{
   string headers="Content-Type:application/json\r\n";// application/x-www-form-urlencoded

   if(StringLen(cookie)>0)
      headers+="Cookie:"+cookie+"\r\n";

   if(StringLen(referer)>0)
      headers+="Referer:"+referer+"\r\n";


int a = WebRequest123(method,url,headers,timeout,data,result,result_headers);             // добавляем хедерсы и переходим к функции ниже.

   return( a );
//return(0);
}
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int  WebRequest123(const string      method,// HTTP method
                 const string      url,   // url address
                 const string      headers,// headers
                 int               timeout,// timeout
                 char              &data[],// request body
                 char              &result[],// result body
                 string            &result_headers) //result headers
{

....
}


Этот код без проблем компилится. И эксперт работает отлично. 

Но отправка этого кода Cloud Protector всегда возвращает ошибку


ВОпрос решился. Я просто сделал из двух функция одну. 

 
22940E31
 
Sergey Likho:

Этот код без проблем компилится. И эксперт работает отлично.

Но отправка этого кода Cloud Protector всегда возвращает ошибку

Не воспроизводится.

protecting finished successfully                1       1
 

@fxsaber  

Попробуйте этот код целиком


int OnInit()
  {
   char data[];
   int data_size=0;
   uchar result[];
   string result_headers;
   int res=_WebRequest("POST","https://ya.ru",NULL,NULL,100,data,data_size,result,result_headers);
   return(INIT_SUCCEEDED);
  }

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int _WebRequest(const string   method,// метод HTTP
                const string   url,// url-адрес
                const string   cookie,// cookie
                const string   referer,// referer
                int            timeout,// таймаут
                char           &data[],// массив тела HTTP-сообщения
                int            data_size,// размер массива data[] в байтах
                char           &result[],// массив с данными ответа сервера
                string         &result_headers)// заголовки ответа сервера
  {
   string headers="Content-Type:application/json\r\n";// application/x-www-form-urlencoded

   if(StringLen(cookie)>0)
      headers+="Cookie:"+cookie+"\r\n";

   if(StringLen(referer)>0)
      headers+="Referer:"+referer+"\r\n";

   return _WebRequest(method,url,headers,timeout,data,result,result_headers);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int  _WebRequest(const string      method,// HTTP method
                 const string      url,   // url address
                 const string      headers,// headers
                 int               timeout,// timeout
                 char              &data[],// request body
                 char              &result[],// result body
                 string            &result_headers) //result headers
  {
//--- проверка DLL
   if(!MQLInfoInteger(MQL_DLLS_ALLOWED))
     {
      return(ERR_DLL_CALLS_NOT_ALLOWED);
     }
   return(0);
  }
fxsaber
fxsaber
  • 2021.04.13
  • www.mql5.com
Профиль трейдера
 
Sergey Likho:

@fxsaber  

Попробуйте этот код целиком

Заменил ERR_DLL_CALLS_NOT_ALLOWED на 0, чтобы компиляция шла.

В итоге протектор отработал без проблем.

 
fxsaber:

Заменил ERR_DLL_CALLS_NOT_ALLOWED на 0, чтобы компиляция шла.

В итоге протектор отработал без проблем.

Здорово, что у вас получилось.

Но у меня изменений нет).  

Странно, что такая проблема существует. 

Я так понимаю, что  ERR_DLL_CALLS_NOT_ALLOWED это просто число 4017. Какая разница протектору какое число там стоит. 

Как уже писал, мне помогает правка кода.

------

уточню код MQL4

 
Sergey Likho:

уточню код MQL4

Важное уточнение.

protecting finished with error 'unknown'                1       1
EX4 write error         0       0
 

Появилась эта ошибка и у меня. MT4

2022.06.27 08:50:14.843 Forex4you build 1356 started (E-Global Trade and Finance Group, Inc.)

любой код генерит

sending request to protector service .          1       1
sending request to protector server error (3-3, #0)             0       0
 
Mikhail Dovbakh #:

Появилась эта ошибка и у меня. MT4

любой код генерит

Ошибка по прежнему происходит на любом коде. 

Aвторизация на сайте успешна. Кто-нибудь в теме?

 

 
Mikhail Dovbakh #:

Ошибка по прежнему происходит на любом коде. 

Aвторизация на сайте успешна. Кто-нибудь в теме?

 

А чистый код протектится?
Еще вариант проверить, включить/выключить прокси, впн.
Попробовать другой терминал, другой ноут.

Я методом исключения ошибку нашел