WebRequest...

 
int  WebRequest(
   const string      method,           // метод HTTP
   const string      url,              // url-адрес
   const string      cookie,           // cookie
   const string      referer,          // referer
   int               timeout,          // таймаут
   const char        &data[],          // массив тела HTTP-сообщения
   int               data_size,        // размер массива data[] в байтах
   char              &result[],        // массив с данными ответа сервера
   string            &result_headers   // заголовок ответа сервера
   );

1. Посылаю Get запрос для логина

2  Получаю HTML c формой  и заголовки.

3. Парсю HTML, формирую тело POST запроса с параметрами, необходимыми для логина

4. Парсю заголовки, нахожу Set-Cookie: PHPSESSID=au5dtha1au143r754ckotvifu2;

беру  эту куку вот так  PHPSESSID=au5dtha1au143r754ckotvifu2;

и присваиваю параметру WebRequestcookie ="PHPSESSID=au5dtha1au143r754ckotvifu2; "

5. Посылаю пост-запрос, а в ответ получаю -  you have disabled cookies

 Кто-то может что-нибудь сказать ?

 Может поле cookie  является просто обычным полем заголовков, отсылаемых серверу в запросе,

т.е.  result_headers  - получаемые от сервера заголовки, а  cookie - отсылаемые серверу  заголовки....

 


само собой, я ведь забираю куки из заголовков, присылаемых  этой функцией WebRequest в поле  result_headers,

а затем посылаю их серверу в поле  cookie.

более того пробовал устанавливать куки с помощью Win API   bool b_Return = InternetSetCookieW("https://aaaaaaaa.com", NULL,s_Cookie);

 b_Return возвращался true, но сервер настаивает -  you have disabled cookies

 

Подскажите пожалуйтста, как в WebRequest указать порт, например http://127.0.0.1:1234

Добавляю его в разрешенные в настройках, вызываю из mql и получаю ошибку 5200 - url не прошел проверку 

 

Порт самому указать нельзя. Действует правило:

- если адрес начинается с https://, то порт 443. В противном случае порт 80.

 
Rashid Umarov:

Порт самому указать нельзя. Действует правило:

- если адрес начинается с https://, то порт 443. В противном случае порт 80.

Это не правило, это один из многочисленных косяков разработчиков терминала. Нет такого ограничения, как нумерация портов. Если в браузере для удобства пользователя порт 80 принят по умолчанию и его указывать необязательно, это не значит, что это почему-то должно быть невозможно.