Прошу помощи по написанию функции WebRequest

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Artyom Kuraev
1289
Artyom Kuraev  

Привет, уважаемые разработчики. Есть такая проблема. Писал несколько лет назад советник, который считывает аналитику с сайта телетрейд. Советник работал, но сейчас что-то поменялось на самом сайте и теперь WebRequest при запросе информации возвращает только ошибки (ранее мне эту функцию писали, но сейчас я хочу уже сам разобраться). Где искать все параметры для этой функции - я не знаю. Если я правильно понимаю логику функционирования сайта, получается, что на основе галок в настройках благодаря исполняемому скрипту подгружается та или иная страница, которая имеет конкретный адрес (в зависимости от настроек) и который можно узнать, только копаясь в коде страницы и копированием адресной строки браузера, как я понимаю, не обойтись.

Кроме того, страница, к которой требуется доступ, требует авторизации. Если судить по коду возврата сервера, то ничего не поменялось (как возвращалось значение 200, так и возвращается), но кто его знает, может советник уже и авторизацию не проходит...

Меня интересует страница вот по этому адресу (на случай, если у кого-то тоже есть доступ) - https://my.teletrade-dj.com/analytics

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

Artyom Trishkin
Модератор
56733
Artyom Trishkin  
Artyom Kuraev:

Привет, уважаемые разработчики. Есть такая проблема. Писал несколько лет назад советник, который считывает аналитику с сайта телетрейд. Советник работал, но сейчас что-то поменялось на самом сайте и теперь WebRequest при запросе информации возвращает только ошибки (ранее мне эту функцию писали, но сейчас я хочу уже сам разобраться). Где искать все параметры для этой функции - я не знаю. Если я правильно понимаю логику функционирования сайта, получается, что на основе галок в настройках благодаря исполняемому скрипту подгружается та или иная страница, которая имеет конкретный адрес (в зависимости от настроек) и который можно узнать, только копаясь в коде страницы и копированием адресной строки браузера, как я понимаю, не обойтись.

Кроме того, страница, к которой требуется доступ, требует авторизации. Если судить по коду возврата сервера, то ничего не поменялось (как возвращалось значение 200, так и возвращается), но кто его знает, может советник уже и авторизацию не проходит...

Меня интересует страница вот по этому адресу (на случай, если у кого-то тоже есть доступ) - https://my.teletrade-dj.com/analytics

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

Документацию читали?

Поиском пользовались?

Artyom Kuraev
1289
Artyom Kuraev  
Artyom Trishkin:

Документацию читали?

Поиском пользовались?

Артем, документация читал, в поиске пробовал найти, но все либо заумно, либо не про то. Справку по функции, естественно, тоже читал. Понимаю, что нужно написать url, но где взять этот url - не понимаю (с простой ссылкой из браузера советник работать не хочет).  Если разберусь с этим  - уже смогу двигаться дальше. В темах, которые я просмотрел, всме работают с готовыми ссылками. Для значения headers везде используются ссвои данные. У меня было прописано - "X-Requested-With: XMLHttpRequest""X-Requested-With: XMLHttpRequest\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:51.0) Gecko/20100101 Firefox/51.0";". Что это за абракадабра - я не понимаю и откуда взялась тоже (в справку носом тыкаюсь, читаю "Заголовки запроса вида "ключ: значение", разделенные переносом строки "\r\n". - что это, откуда брать и как использовать - без понятия). 

Далее для значения data у меня прописано в коде "account_id="+Login+"&account_hash="+MD5(Password)+"&session_type=1&proc=session_int.open" (потом идет перенос посимвольно в массив, это понятно - об этом тоже в справке написано. То, что первоначально идет передача логина и пароля с названием соответствующих полей - тоже я понимаю, а вот proc=session_int.open - непонятно, к чему.

Поэтому я и попросил у добрых людей помочь с поиском инструкций о том, как формируются данные для функции WebRequest.

Maxim Kuznetsov
13780
Maxim Kuznetsov  
Artyom Kuraev:

Артем, документация читал, в поиске пробовал найти, но все либо заумно, либо не про то. Справку по функции, естественно, тоже читал. Понимаю, что нужно написать url, но где взять этот url - не понимаю (с простой ссылкой из браузера советник работать не хочет).  Если разберусь с этим  - уже смогу двигаться дальше. В темах, которые я просмотрел, всме работают с готовыми ссылками. Для значения headers везде используются ссвои данные. У меня было прописано - "X-Requested-With: XMLHttpRequest""X-Requested-With: XMLHttpRequest\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:51.0) Gecko/20100101 Firefox/51.0";". Что это за абракадабра - я не понимаю и откуда взялась тоже (в справку носом тыкаюсь, читаю "Заголовки запроса вида "ключ: значение", разделенные переносом строки "\r\n". - что это, откуда брать и как использовать - без понятия). 

Далее для значения data у меня прописано в коде "account_id="+Login+"&account_hash="+MD5(Password)+"&session_type=1&proc=session_int.open" (потом идет перенос посимвольно в массив, это понятно - об этом тоже в справке написано. То, что первоначально идет передача логина и пароля с названием соответствующих полей - тоже я понимаю, а вот proc=session_int.open - непонятно, к чему.

Поэтому я и попросил у добрых людей помочь с поиском инструкций о том, как формируются данные для функции WebRequest.

Это заголовки запроса HTTP. Когда броузер (и WebRequest) запрашивает страницу/файл он посылает довольно много заголовков и в ответ получает тоже большую пачку всего, помимо собственно файла.

в Firefox - запустите  инструмент "Сеть" Ctrl-Shift-E или Меню/Веб-разработка-сеть. Откройте нужную вам страницу.
Вы увидите много-много файлов которые броузер загрузил чтобы вывести одну страницу.

Ткнув в нужный вам файл, справа увидите всю требуемую информацию - точный URL, метод, отправленные заголовки, полученные заголовки

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