Синхронизация документов с сайта по HTTPS
Решение представляется мне в следующей последовательности:
- Открытие страницы авторизации / Авторизация на сайте
- Получение сведений об имеющихся документах (по идее, сервер отдаёт дату последнего изменения; в крайнем случае определять по размеру файла)
- Загрузка изменённых документов
Ещё один пункт (необязательный, но желательный) — это разбор страницы со списком документов, т.к. ссылки там наверняка каждый раз меняются при обновлении. Чем для этого пользоваться (MSXML, MSHTML или что-то ещё), для меня пока неведомо
Как реализовать данную задачу?
примерный порядок действий:
1) получаем страницу авторизации, сохраняем куки <-- чтоб получить сессию
2) пост-запрос на авторизацию с использованием предыдущих кук, сохраняем куки, парсим ответ (можно разобрать DOM/XML документа , хотя достаточно просто поискать текст ошибки, если ajax всё еще проще)
3) запрос странички со списком с использованием предыдущих кук, парсим всё (опятьже можно разобрать документ как DOM/XML , можно просто по регуляркам)
4) пост-запрос с куками и новыми файлами в посте (если на сайте какойнить хитрый альтернативный загрузчик то тут хуже)
5) запрос с куками на выход с сайта
Хотя проще былобы получить доступ к серверу по более легким протоколам - там ftp ssh ипр или хотяб апи небольшое в пару функций написать для сервера с более легкими и незамусоренными страничками
А по другим протоколам доступа нет (по крайней мере, мне неизвестно). Документы там отдаются вот по такому sid'у, например:
https://domain/documents/open/?sid=31302e35342e302e313240d0a4d180d0b0d0bdd187d0b0d0b9d0b7d0b82f41344d2fd097d0b0d189d0b8d182d0b020d0b0d0b2d182d0bed180d181d0bad0b8d18520d0bfd180d0b0d0b22fd09fd180d0b0d0b2d0b8d0bbd0b020d0b8d181d0bfd0bed0bbd18cd1b7d0bed0b2d0b0d0bdd0b8d18f20d0bad0b0d180d182d0bed0b3d180d0b0d184d0b8d187d0b5d181d0bad0b8d18520d0bcd0b0d182d0b5d180d0b8d0b0d0bbd0bed0b22e646f62
Так что придётся парсить, что есть
Цитата: @pixo $oft
Ну нет, wget и curl из другой оперы. Хотелось бы именно программно (ну и желательно статейки по WinHTTP, а то MSDN рассказывает лишь про функции)
Что тебе мешает прилинковать libcurl к поректу и юзать его функции?
По WinHTTP статья: http://msdn.microsoft.com/ru-ru/magazine/cc716528.aspx
WinHTTP vs WinInet http://msdn.microsoft.com/ru-ru/library/windows/desktop/hh227297%28v=vs.85%29.aspx
ПыСы (Оффтоп) скрипты это тоже программы
Ладно, за статью спасибо, хоть она и асинхронная. Времени пока не столь много на программирование, но буду стараться понемногу выделять. A vs B читал, понял, что лучше всё-таки WinHTTP