День добрый!
Есть сайт https://www.portfolio123.com/, хочу тянуть данные из него, но не получается авторизоваться из собственного приложения.
Исследую запрос через утилиты браузеров, которые отображают передачу моих "ручных" запросов POST.
Запрос отправляется такой: "LoginUsername=мояпочта@почта.ru&LoginPassword=пароль&LoginRememberMe=1&Login=Login&url=index.jsp"
Как представлять index.jsp, остается загадкой.
— пример кода, должен делать запрос на авторизацию, получить куки и использовать их для дальнейшей работы, а именно для скачивания файлика. Но в результате, что уже только не перепробовал, одно и то же — получаем страничку html с запросом на авторизацию! полагаю, что авторизация не проходит и дело в index.jsp, но как его готовить?
Через утилиты брацзеров не надо, потому как они не показывают что ваша программа шлет.
Возьмите Fiddler, там будет видно что шлет браузер, и что программа. Можно даже будет
выгрузить лог в файлы и сравнить любимым merge tool'ом.
Здравствуйте, Serginio1, Вы писали:
F>> Кстати в тему — в AngleSharp весьма тормозной css query engine (по сравнению с CsQuery и/или нативным браузером). S> Дав нет. Там от версии к версии все быстрее. Основные затраты это получение данных от сервера.
Это уже у кого как. У меня перфоманс css query engine весьма щепетильное место. Ладно, это оффтоп.
Здравствуйте, zoom-zoom, Вы писали:
ZZ>Есть сайт https://www.portfolio123.com/, хочу тянуть данные из него, но не получается авторизоваться из собственного приложения. ZZ>Исследую запрос через утилиты браузеров, которые отображают передачу моих "ручных" запросов POST. ZZ>Запрос отправляется такой: "LoginUsername=мояпочта@почта.ru&LoginPassword=пароль&LoginRememberMe=1&Login=Login&url=index.jsp"
может быть в логине/пароле символы, которые надо заескейпить...
ZZ>
ZZ> string answer = sr.ReadToEnd();
ZZ>
Самое интересное — а что в answer-то?
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Здравствуйте, ·, Вы писали:
·>Здравствуйте, zoom-zoom, Вы писали:
ZZ>>Есть сайт https://www.portfolio123.com/, хочу тянуть данные из него, но не получается авторизоваться из собственного приложения. ZZ>>Исследую запрос через утилиты браузеров, которые отображают передачу моих "ручных" запросов POST. ZZ>>Запрос отправляется такой: "LoginUsername=мояпочта@почта.ru&LoginPassword=пароль&LoginRememberMe=1&Login=Login&url=index.jsp" ·>может быть в логине/пароле символы, которые надо заескейпить...
ZZ>>
Здравствуйте, fddima, Вы писали:
F>Здравствуйте, Serginio1, Вы писали:
F>>> Кстати в тему — в AngleSharp весьма тормозной css query engine (по сравнению с CsQuery и/или нативным браузером). S>> Дав нет. Там от версии к версии все быстрее. Основные затраты это получение данных от сервера. F> Это уже у кого как. У меня перфоманс css query engine весьма щепетильное место. Ладно, это оффтоп.
Здравствуйте, zoom-zoom, Вы писали:
ZZ>·>Самое интересное — а что в answer-то? ZZ>в answer начальная страничка без авторизации.
Значит ты посылаешь запрос, который серверу не нравится, и вместо подтверждения авторизации он просто тебя на хоумпейдж редиректит.
Смотри что посылается, сравнивай с тем что делает браузер. Может не ту кодировку используешь, или неправильно формируешь тело запроса. Вот это выглядит подозрительно "LoginUsername=мояпочта@почта.ru&LoginPassword=пароль" — особенно если в логине/пароле есть non-ascii или спец-символы.
Вот тут вроде есть способ поглядеть raw http: http://stackoverflow.com/questions/3808016/how-do-i-see-the-raw-http-request-that-the-httpwebrequest-class-sends
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Здравствуйте, ·, Вы писали:
·>Здравствуйте, zoom-zoom, Вы писали:
ZZ>>·>Самое интересное — а что в answer-то? ZZ>>в answer начальная страничка без авторизации. ·>Значит ты посылаешь запрос, который серверу не нравится, и вместо подтверждения авторизации он просто тебя на хоумпейдж редиректит. ·>Смотри что посылается, сравнивай с тем что делает браузер. Может не ту кодировку используешь, или неправильно формируешь тело запроса. Вот это выглядит подозрительно "LoginUsername=мояпочта@почта.ru&LoginPassword=пароль" — особенно если в логине/пароле есть non-ascii или спец-символы. ·>Вот тут вроде есть способ поглядеть raw http: http://stackoverflow.com/questions/3808016/how-do-i-see-the-raw-http-request-that-the-httpwebrequest-class-sends
С логином и паролем нет проблем, без спец символов все то же самое. Вместо почты можно логин подставлять можно. Тут дело именно в подаче index.jsp. Пока не могу понять, как именно этот элемент прикручивать.
Здравствуйте, zoom-zoom, Вы писали:
ZZ>·>Значит ты посылаешь запрос, который серверу не нравится, и вместо подтверждения авторизации он просто тебя на хоумпейдж редиректит. ZZ>·>Смотри что посылается, сравнивай с тем что делает браузер. Может не ту кодировку используешь, или неправильно формируешь тело запроса. Вот это выглядит подозрительно "LoginUsername=мояпочта@почта.ru&LoginPassword=пароль" — особенно если в логине/пароле есть non-ascii или спец-символы. ZZ>·>Вот тут вроде есть способ поглядеть raw http: http://stackoverflow.com/questions/3808016/how-do-i-see-the-raw-http-request-that-the-httpwebrequest-class-sends
ZZ>С логином и паролем нет проблем, без спец символов все то же самое. Вместо почты можно логин подставлять можно. Тут дело именно в подаче index.jsp. Пока не могу понять, как именно этот элемент прикручивать.
Очень вряд ли. Скорее всего этот параметр абсолютно неважен, он скорее всего означает куда делать редирект после успешного логина. А у тебя тупо авторизация не проходит.
Надо сравнивать raw http трафик и делать его идентичным, тут всё что угодно может быть — даже может быть, что тебя сервак по user-agent отшивает как робота...
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Здравствуйте, zoom-zoom, Вы писали: ZZ>- пример кода, должен делать запрос на авторизацию, получить куки и использовать их для дальнейшей работы, а именно для скачивания файлика. Но в результате, что уже только не перепробовал, одно и то же — получаем страничку html с запросом на авторизацию! полагаю, что авторизация не проходит и дело в index.jsp, но как его готовить?
Мне встречались веб-приложения, которые создают сессию только при первом GET-запросе (логично предполагая, что юзер не сможет ничего ввести до того, как получит форму). Потому попробуйте запросить страницу логина, затем вытянуть оттуда все куки и отправить их уже вместе со своим POST-запросом на аутентификацию.
Ворчание
Аутентификация и авторизация — это не одно и то же.