WebRequest работает на пользовательских компах и не работает на ВПС...

 

Весь смысл скачать данные за определенный период, поэтому обычные решения что были в сети не подошли (может не увидела таких и буду благодарна если кинете).

Ниже представленный код работает на двух домашних компах отлично ( мой и заказчика) и не работает на двух ВПС серверах... 

Если  не задавать "X-Requested-With:XMLHttpRequest" - работает везде, но этот заголовок задать необходимо т.к. сайт тогда перекидывает на главную страницу.

Ошибка в mql - 5203,  а в result - 12002 - т.е. он просто идет как неверный запрос 

Таймер 20 сек, за этот момент уже нашла на форме - не помогло. 

Код: 

string result_headers;

char   post[], result[];

string pos_url="https://uk.investing.com/economic-calendar/Service/getCalendarFilteredData";

if (WebRequest("POST", pos_url, "X-Requested-With:XMLHttpRequest", NULL, timeout, post, ArraySize(post), result, result_headers) == -1){  

   Print("No load day "+TimeToString(_time_start)+" Error in WebRequest POST. Code  = "+IntegerToString(GetLastError())+" ("+CharArrayToString(result)+"/"+result_headers+")"); 

   return(false);}

 
Galina Bobro:

Весь смысл скачать данные за определенный период, поэтому обычные решения что были в сети не подошли (может не увидела таких и буду благодарна если кинете).

Ниже представленный код работает на двух домашних компах отлично ( мой и заказчика) и не работает на двух ВПС серверах... 

Если  не задавать "X-Requested-With:XMLHttpRequest" - работает везде, но этот заголовок задать необходимо т.к. сайт тогда перекидывает на главную страницу.

Ошибка в mql - 5203,  а в result - 12002 - т.е. он просто идет как неверный запрос 

Таймер 20 сек, за этот момент уже нашла на форме - не помогло. 

Код: 

string result_headers;

char   post[], result[];

string pos_url="https://uk.investing.com/economic-calendar/Service/getCalendarFilteredData";

if (WebRequest("POST", pos_url, "X-Requested-With:XMLHttpRequest", NULL, timeout, post, ArraySize(post), result, result_headers) == -1){  

   Print("No load day "+TimeToString(_time_start)+" Error in WebRequest POST. Code  = "+IntegerToString(GetLastError())+" ("+CharArrayToString(result)+"/"+result_headers+")"); 

   return(false);}

на вид не хватает каких-то библиотек на vps

попробуйте установить Visual Studio на vps

 
Galina Bobro:

Весь смысл скачать данные за определенный период, поэтому обычные решения что были в сети не подошли (может не увидела таких и буду благодарна если кинете).

Ниже представленный код работает на двух домашних компах отлично ( мой и заказчика) и не работает на двух ВПС серверах... 

Если  не задавать "X-Requested-With:XMLHttpRequest" - работает везде, но этот заголовок задать необходимо т.к. сайт тогда перекидывает на главную страницу.

Ошибка в mql - 5203,  а в result - 12002 - т.е. он просто идет как неверный запрос 

Таймер 20 сек, за этот момент уже нашла на форме - не помогло. 

Код: 

string result_headers;

char   post[], result[];

string pos_url="https://uk.investing.com/economic-calendar/Service/getCalendarFilteredData";

if (WebRequest("POST", pos_url, "X-Requested-With:XMLHttpRequest", NULL, timeout, post, ArraySize(post), result, result_headers) == -1){  

   Print("No load day "+TimeToString(_time_start)+" Error in WebRequest POST. Code  = "+IntegerToString(GetLastError())+" ("+CharArrayToString(result)+"/"+result_headers+")"); 

   return(false);}

Галина, VPS смотрят в интернет   не через прокси ?

 

а я бы предложил посмотреть в сторону java,либо вообще отсутствуют на впс,либо ...

провел сейчас эксперимент-включен в браузере NoScript и AdBlock, ссылка из вашего запроса не работает - редиректит сразу на главную страницу, и так как кнопка фильтра календаря у них сделана через скрипт,то она,разумеется,не работает. 

есть же специальная защита от парсинга ботами-мол,у вас не включены скрипты-вы бот! 

 
kaus_bonus:

а я бы предложил посмотреть в сторону java,либо вообще отсутствуют на впс,либо ...

провел сейчас эксперимент-включен в браузере NoScript и AdBlock, ссылка из вашего запроса не работает - редиректит сразу на главную страницу, и так как кнопка фильтра календаря у них сделана через скрипт,то она,разумеется,не работает. 

есть же специальная защита от парсинга ботами-мол,у вас не включены скрипты-вы бот! 

Ну это оченього логично т.к. запрос к  Ajax. Дело в том что  не  главную страницу возвращает, а вообще запрос не выполняется
 

В общем, на всяк случай Java обновила - не помогло. Visual Studio и у меня на компе не стоит, у заказчика думаю тем более и работает.

Прокси не вижу в свойствах обозревателя, но сайт говорит что возможно используются средства анонимности https://2ip.ru/privacy/bar/1769500_c77a1c.html

Проверка анонимности
Проверка анонимности
  • 2ip.ru
  • 2ip.ru
Метод проверки Результат 80 %
 
а просто через браузер на впс работает кнопка эта? 
 
Galina Bobro:
Дело в том что  не  главную страницу возвращает, а вообще запрос не выполняется
12002 это таймаут.
 

В браузере заходит.  Увеличение таймаута не помогает

Нашла инфу, указала рефера, пока не помогло 

Для ограничения XmlHttpRequest используется философия "Same Origin Policy". Она очень проста - каждый сайт в своей песочнице. Запрос можно делать только на адреса с тем же протоколом, доменом, портом, что и текущая страница.

Т.е, со страницы на адресе http://site.com нельзя сделать XmlHttpRequest на адрес https://site.com, http://site.com:81 или http://othersite.com

What is App Cloud?
  • www.salesforce.com
Salesforce1 Platform is now App Cloud; facilitating fast app development that help you connect employees, engage customers, integrate, and connect everything and everyone.
 

либ не хватает

на компе они есть на впс нет

установка студии решает проблему с  либами.

 

Поставьте прокси сниффер на VPS (хватит и http-шных как "burp suite" или "owasp",....).
Прокиньте через него интернет трафик.
Посмотрите что реально отправляется.


SOP ("Same Origin Policy") - ни к чему, это с другой песни. 
Например, он говорит, что с страницы www.mql5.com в браузере, грубо говоря, не возможно получить данные из других сайтов не относящиеся к этому домену, порту,протоколу....

Причина обращения: