Странное поведение WebRequest в MT5 - через какое-то время выдает ошибку. - страница 2

 

У cmegroup стоит файрволл, заворачивающий в черную дыру любой не веб-броузерный трафик:

curl -v https://www.cmegroup.com

*   Trying 23.205.250.95:443...
* Connected to www.cmegroup.com (23.205.250.95) port 443 (#0)
* schannel: disabled automatic use of client certificate
* schannel: ALPN, offering http/1.1
* schannel: ALPN, server accepted to use http/1.1
> GET / HTTP/1.1
> Host: www.cmegroup.com
> User-Agent: curl/7.79.1
> Accept: */*
>
... тут черная дыра, не отвечает, просто удерживает коннект

а у яху все нормально:

curl -v https://finance.yahoo.com 
*   Trying 2a00:1288:80:807::1:443...
* Connected to finance.yahoo.com (2a00:1288:80:807::1) port 443 (#0)
* schannel: disabled automatic use of client certificate
* schannel: ALPN, offering http/1.1
* schannel: ALPN, server accepted to use http/1.1
> GET / HTTP/1.1
> Host: finance.yahoo.com
> User-Agent: curl/7.79.1
> Accept: */*
>
* schannel: failed to decrypt data, need more data
* Mark bundle as not supporting multiuse
< HTTP/1.1 200 OK
<
... тут идут данные...

Поэтому нет никаких проблем с WebRequest - это защиты на стороне некоторых сайтов (в первую очередь CloudFlare) срабатывают.

Не все разрешают сканить свои сайты роботами.

 
Renat Fatkhullin #:

У cmegroup стоит файрволл, заворачивающий в черную дыру любой не веб-броузерный трафик:

а у яху все нормально:

Поэтому нет никаких проблем с WebRequest - это защиты на стороне некоторых сайтов (в первую очередь CloudFlare) срабатывают.

Не все разрешают сканить свои сайты роботами.

Конечно, я это понимаю, но " Но вот примерно полгода назад всё работало на обоих МТ один и тот же код, в течении нескольких лет, но МТ5 стал впоследствии слетать, всё было не до него, но недавно стал искать из-за чего более пристально и вышел на WR."

В данную минуту МТ4 выполняет нескольких тысяч успешных запросов. Притом, я могу этот же код запустить и на МТ5 и он также будет работать, но после простоя, примерно пару часов, WR в МТ5 больше не будет работать, а в МТ4 работает сутками... Почему? 


Здесь один и тот же запрос в  cmegroup с обоих МТ. Один отрабатывает, а другой нет.

А яху здесь только для того, чтобы показать работоспособность вашего кода, он был в хелпе. 

 
Igor Ramensky #:

int res=WebRequest("GET",url,cookie,NULL,500,post,0,result,headers); 

эта строка в обоих, всё одинаково.

Тайм аут, как и другие параметры пробовал разные, в течении месяца тестировал разные варианты, в т.ч. разные варианты WR. Положительного результата не достиг, потому здесь и пишу.

Но вот примерно полгода назад всё работало на обоих МТ один и тот же код, в течении нескольких лет, но МТ5 стал впоследствии слетать, всё было не до него, но недавно стал искать из-за чего более пристально и вышел на WR.

учитывая вышесказанное,

попробуйте добавить заголовки

вот, нашел по теме кое что

https://www.mql5.com/ru/forum/225417

https://www.mql5.com/ru/code/12296

на СМЕ у меня бегало с таким

        request3.Method = "GET";

        request3.Headers.Add("Cache-Control", "max-age=0");

        request3.Headers.Add("Accept-Charset", "windows-1251,utf-8;q=0.7,*;q=0.3");

        request3.Headers.Add("Accept-Encoding", "gzip,deflate,sdch");

        request3.Host = "www.cmegroup.com";

        request3.Headers.Add("Accept-Language", "ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4");

        request3.UserAgent = "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.160 Safari/537.22";

        request3.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";

правда это не на MQL писано, но сути не меняет

WebRequest Post запрос на сайт
WebRequest Post запрос на сайт
  • 2018.01.22
  • www.mql5.com
Добрый день, пытаюсь отправить POST запрос на сайт investing...
 
Renat Akhtyamov #:

учитывая вышесказанное,

попробуйте добавить заголовки

вот, нашел по теме кое что

https://www.mql5.com/ru/forum/225417

https://www.mql5.com/ru/code/12296

Меня не интересуют  POST запросы.

int res=WebRequest("GET",url,cookie,NULL,500,post,0,result,headers); 

Не работает так, как надо эта строка именно в МТ5, в МТ4 она работает идеально.

Хочу чтобы в МТ5 она тоже работала штатно (с любыми сайтами), ну хотя бы с теми, с которыми работает МТ4, ладно, ну хотя бы с CME.

Еще раз:

У меня нет проблемы с работой этой функции ни в одном МТ ни в ни в 5!

Она везде работает так, как нужно, так как должна!

Но такая беда в МТ5 -  WebRequest через определенное время отказывается работать! А раньше МТ5 тоже работала отлично.

Вот почему это происходит и как избавиться от этой проблемы?

То что какие-то страшные файерволлы.... ну не ответ это для солидной компании. Ваш же МТ4 их не боится!

К тому же меня по АйПи СМЕ не банят. Я не "сканирую сайты". Если что, они это быстро делают с теми кто тупо парсит их.

Так что хочется решения. Ну либо, опять DLL... А хотелось бы без костылей.

 
Igor Ramensky #:

Меня не интересуют  POST запросы.

int res=WebRequest("GET",url,cookie,NULL,500,post,0,result,headers); 

Не работает так, как надо эта строка именно в МТ5, в МТ4 она работает идеально.

Хочу чтобы в МТ5 она тоже работала штатно (с любыми сайтами), ну хотя бы с теми, с которыми работает МТ4, ладно, ну хотя бы с CME.

ортачитесь?

ну, дело хозяйское ....

тут похоже Вы решили выложиться на тему "не смог", а не "как?"
 
Renat Akhtyamov #:

ортачитесь?

ну, дело хозяйское ....

тут похоже Вы решили выложиться на тему "не смог", а не "как?"

Слова подбирайте или у вас стиль разговора такой?

Мы с вами не в конюшне....

Перечитайте, выше пост мой. Нечего ответить - проще промолчать.

 
Igor Ramensky #:

Слова подбирайте или у вас стиль разговора такой?

Мы с вами не в конюшне....

Перечитайте, выше пост мой. Нечего ответить - проще промолчать.

заголовки добавьте, многим помогало

Вам по русски сказали - банят роботов!

чтобы стать браузером, нужны заголовки

 
Renat Akhtyamov #:

да, вспомнил

если быть точным, не через некоторое время, а на 13-ый, именно на 13-ый запрос.

Дней 5 назад столкнулся с этим.

Причем ошибка - переполнение стека.

Нет такого. Да хоть несколько сотен...

 
Renat Akhtyamov #:

заголовки добавьте, многим помогало

Вам по русски сказали - банят роботов!

чтобы стать браузером, нужны заголовки

Почему не банят МТ4? Код тот же, работает лучше.

Про заголовки - что я только не пробовал, их тоже. Я попробую использовать те что вы предложили. Отпишусь по результату.

 
Igor Ramensky #:

Нет такого. Да хоть несколько сотен...

это МТ4 или МТ5?

ну и пауза между запросами...

это вообще то сродни хакерской атаке

хотя бы секунд 5...

Если запрос идет на каждом тике, то в МТ5 их по более будет, при условии что в МТ4 4-х знак, а в МТ5 - 5-и знак, как вариант