WebRequest ?

 

Суток добрых.

Хотел проверить пример из учебника, но не склеилось. Объясните, пожалуйста, в чем беда?

input string InpLogin   ="";             //Ваш аккаунт в MQL5.com 
input string InpPassword="";             //Пароль для вашего аккаунта 

//+------------------------------------------------------------------+ 
//| Script program start function                                    | 
//+------------------------------------------------------------------+ 
void OnStart() 
  { 
   post(InpLogin,InpPassword);
  } 
  
  
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
bool post(string login,string password)
{
   int    res;     // для помещения результата выполнения операций 
   char   data[];  // массив с данными для отправки POST-запросов 
   
   string str="Login="+login+"&Password="+password; 
   string auth,sep="-------Jyecslin9mp8RdKV"; // разделитель данных формата multipart 
   
//--- сформируем тело POST запроса на авторизацию 
   ArrayResize(data,StringToCharArray(str,data,0,WHOLE_ARRAY,CP_UTF8)-1); 
//--- сбросим код ошибки 
   ResetLastError(); 
//--- выполняем запрос на авторизацию 
   res=WebRequest("POST","https://www.mql5.com/ru/auth_login",NULL,0,data,data,str); 
//--- если авторизация не удалась 
   if(res!=200) 
     { 
      Print("Ошибка авторизации #"+(string)res+", LastError="+(string)GetLastError()); 
      return(false); 
     } 
//--- вычитаем из заголовка ответа сервера cookie авторизации 
   res=StringFind(str,"Set-Cookie: auth="); 
   Print(res);
//--- если cookie не найден, сообщим об ошибке 
   if(res<0) 
     { 
      Print("Ошибка, данные авторизации не найдены в ответе сервера (проверте логин/пароль)"); 
      return(false); 
     } 
     
  return(true);
}
//+-----------------------------------------

Запрос выдает результат -1

В разрешенных URL добавил https://www.mql5.com/ru/auth_login

Логин и пароль перепроверил, буква в буквы.

 
В рамках повышения безопасности были изменены механизмы авторизации пользователей на сайте.
Вас интересует авторизация на www.mql5.com или просто примеры работы с функцией WebRequest ?
 

мысль что учебник устарел вас не посещала ?

 
Sergey Dzyublik:
В рамках повышения безопасности были изменены механизмы авторизации пользователей на сайте.
Вас интересует авторизация на www.mql5.com или просто примеры работы с функцией WebRequest ?

Меня интересует вопрос работы с WebRequest.

Хочу понять, как авторизоваться с помощью логина\пароль и как это сделать с помощью токена)

 

WebRequest работает, но не с mql5.com. Возьмите другой сайт для изучения.

И в список разрешённых достаточно (или необходимо?) добавлять не https://www.mql5.com/ru/auth_login, а https://www.mql5.com

 
Edgar Akhmadeev:

WebRequest работает, но не с mql5.com. Возьмите другой сайт для изучения.

И в список разрешённых достаточно (или необходимо?) добавлять не https://www.mql5.com/ru/auth_login, а https://www.mql5.com

т.е. теоретически, если я возьму страницу авторизации другого сайта и с этим кодом попробую туда авторизоваться, должно быть все ок?

 
Nikita Chernyshov:

т.е. теоретически, если я возьму страницу авторизации другого сайта и с этим кодом попробую туда авторизоваться, должно быть все ок?

На форуме опубликованы хорошие рабочие коды, например для Telegram (не будет работать из РФ). Легко найдутся по "WebRequest".

Работу проверял с Telegram и с WhatsApp.