Здравствуйте!
Возникла задачка:
Есть сайт с которого надо скачаь файл, например,
http://to-da-se.ru/file.ext
Кликаем в эксплорере и вместо файла получаем страничку, где чёрным по белому просят ввести пароль и логин. Вводим и на тойже странице пишут: "всё здорово ты вошёл!". Далее ещё раз
http://to-da-se.ru/file.ext и в ответ летит файл.
Собственно вопрос в том, как этот процесс автоматизировать?
Методом POST параметры пробовал посылать:
В своей проге — грит, у тебя cookies не включено;
В эксплорере — получается миновать логин/пароль.
Спасибо.
Здравствуйте, Smile616, Вы писали:
S>Здравствуйте!
S>Возникла задачка:
S>Есть сайт с которого надо скачаь файл, например, http://to-da-se.ru/file.ext
S>Кликаем в эксплорере и вместо файла получаем страничку, где чёрным по белому просят ввести пароль и логин. Вводим и на тойже странице пишут: "всё здорово ты вошёл!". Далее ещё раз http://to-da-se.ru/file.ext и в ответ летит файл.
S>Собственно вопрос в том, как этот процесс автоматизировать?
S>Методом POST параметры пробовал посылать:
S>В своей проге — грит, у тебя cookies не включено;
S>В эксплорере — получается миновать логин/пароль.
S>Спасибо.
разбирайтесь с cookies в заголовках HTTP,
по видимому Вы должны вернуть в запросе
то "печенье" что было получено от сервера при первом запросе.
это что-то вроде билетика на дискотеку,
первый раз покупаете билетик, а вам ставят штампик на руку,
можно выйти покурить а по штампику Вас пустят назад
куки могут иметь срок годности (штампик стирается потихоньку),
так что лучший способ это два приема, имитирующих
интерактивный запрос, первый — запрос форма логина — получаем печенье,
второй запрос с параметрами формы и печенье.
Здравствуйте, Smile616, Вы писали:
А>>по видимому Вы должны вернуть в запросе
А>>то "печенье" что было получено от сервера при первом запросе.
S>Он уже на первый запрос возвращает страничку с надписью: ваш браузер не поддерживает cookies
гм, я не разбирался так тонко в таких вопросах,
я сделал-бы так
1) предположил, что куки мне даются при первом посещении заглавной страницы,
тогда при посещении странички с логином я уже имею куки и должен их передать,
что-бы это проверить, надо удалить из папки куков браузера относящиеся к делу
куки и зайти браузером сразу на страничку логина (вообще желательно через
логирующий прокси/маппер — легко написать самому), и посмотреть,
ежели ошибка "Куки вашим браузером не поддерживаются" тогда сделать
как я уже писал выше, только забирать куки не со страницы логина а с главной.
2) Кстати, нужно изучить то что посылает IE, многие поля в заголовке могут быть важные,
например Host: to-da-se.ru или, возможно, важно написать Accept: */*.
3) Если ничего не помогает, предположить что сервер определяет возможность куков
по версии браузера, тогда нужно прикинуться IE вот так добавив заголовок:
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)
в общем — надо немного поисследовать проблему, может почитать немного RFC
Здравствуйте, Smile616, Вы писали:
S>Здравствуйте!
S>Возникла задачка:
S>Есть сайт с которого надо скачаь файл, например, http://to-da-se.ru/file.ext
S>Кликаем в эксплорере и вместо файла получаем страничку, где чёрным по белому просят ввести пароль и логин. Вводим и на тойже странице пишут: "всё здорово ты вошёл!". Далее ещё раз http://to-da-se.ru/file.ext и в ответ летит файл.
S>Собственно вопрос в том, как этот процесс автоматизировать?
S>Методом POST параметры пробовал посылать:
S>В своей проге — грит, у тебя cookies не включено;
S>В эксплорере — получается миновать логин/пароль.
S>Спасибо.
libcurl возьмите
Здравствуйте, Smile616, Вы писали:
S>Здравствуйте!
S>Возникла задачка:
S>Есть сайт с которого надо скачаь файл, например, http://to-da-se.ru/file.ext
S>Кликаем в эксплорере и вместо файла получаем страничку, где чёрным по белому просят ввести пароль и логин. Вводим и на тойже странице пишут: "всё здорово ты вошёл!". Далее ещё раз http://to-da-se.ru/file.ext и в ответ летит файл.
S>Собственно вопрос в том, как этот процесс автоматизировать?
А WinHTTP пробовали?
... << RSDN@Home 1.2.0 alpha rev. 648 with тишина...>>