Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Запрос Post, непонятные параметры

246
15 ноября 2005 года
GIZMO
1.8K / / 30.07.2004
Надо добраться до одной странички в Инете программно. Через IE добираюсь так:
1. перехожу по ссылке на страницу авторизации, ввожу имя и пароль
2. На странице на которую перекинуло после авторизации, кликаю по ссылке, выбрасывает еще на одну страницу с предложение ввода.
3. Там заполняю еще кое-какую информацию и получаю требуемую страницу с результатаом.

Вот теперь вопрос как все это проделать программно? IE отрпавляет такую ссылку(итоговую):

https://statserv.home.net/cgi-bin/clients/deal_service?session_id=bryehd64hd76460a91cac74ad3d2e8be4&service_id=24571&start_y=2005&start_m=11&start_d=01&stop_y=2005&stop_m=11&stop_d=14&leased=%A0%D2%CF%F3%AA%EF%A4%D2%B5%C4%D8+%D4%D2%C1%C6%C9%AD-%D3%C5%D3%D3%C9%C9

и если Я это отправляю методом пост Броузера все работает, но только один день. Я подозреваю, что виноваты параметры: - 1-й и последний

т.е. вопрос сводится к тому, что это за параметры и какое у них назначение. Думаю их предварительно нужно запросить или как?
246
15 ноября 2005 года
GIZMO
1.8K / / 30.07.2004
Цитата:
Originally posted by GIZMO

Я подозреваю, что виноваты параметры: - 1-й и последний

т.е. вопрос сводится к тому, что это за параметры и какое у них назначение. Думаю их предварительно нужно запросить или как?


c session_id - присутствует на странице созданной после п.1 ввиде скрытой метки, но, что это фишка сервера и как и где это регламентируется? Т.е уже придется выполнить два запроса в первом получить session_id и подставлять его во второй.

а с последним параметром пока плохо...

246
16 ноября 2005 года
GIZMO
1.8K / / 30.07.2004
Цитата:
Originally posted by GIZMO
c session_id - присутствует на странице созданной после п.1 ввиде скрытой метки, но, что это фишка сервера и как и где это регламентируется? Т.е уже придется выполнить два запроса в первом получить session_id и подставлять его во второй.

а с последним параметром пока плохо...


С первым вроде так и решил, а что с последним делать? На приведенной ссылке он маленько не так отображается, на самом деле так:
&leased=%F0%D2%CF%D3%CD%CF%D4%D2%C5%D4%D8+%D4%D2%C1%C6%C9%CB-%D3%C5%D3%D3%C9%C9
что за икс? Если Я сначала запрашиваю session_id, а потом подставляю его, даты и это еб..ческое значение, то все работает, но Я не пойму оно для всех одинаковое или для конкретного юзера свое (если для каждого свое, то как его достать программно есс-но...).
Ну не стесняемся помогаем!
ART_CODE - ау!!!!

2.3K
21 ноября 2005 года
ART-CODE
134 / / 15.11.2004
Привет, я в отпуске был. В Италию с женой ездил, хорошо там было ! Потому и не отвечал.

Нам, конечно, может быть интересно - что там за
параметры такие... но по- большому счету - пофиг.

Все, что нужно подставить в строку параметров у
тебя уже должно быть в теле тех страниц, которые ты перед этим посещаешь, там и искать надо программно...
Однако есть вариант, когда этот параметр
генерится диамически на стороне клиента в браузере
при помощи JavaScript - в этом случае , конечно
нужно понять логику работы этого скрипта и
имитировать ее...

Как всегда рулит полный перехват ВСЕХ
отправляемых и принимаемых данных и анализ ...
Да, и еще - очень важно - перед перехватом не забывай сбрасывать Кеш браузера - чтобы ничего не пропустить... (Удалить файлы и Удалить "Cookie")
Для обеспечения перехвата можно по- прежнему использоватьTcpLogger или использовать программу TinyHTTPGate от http://mike.nov.ru/
немного доработав ее самостоятельно для сохранения всех передаваемых и принимаемых данных

Скачать исходники TinyHTTPGate
246
21 ноября 2005 года
GIZMO
1.8K / / 30.07.2004
Привет и тебе искуссный кодер!

Цитата:
Originally posted by ART-CODE

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


Ну до этого Я уже допер, кликаю мышкой Я хорошо (в Билдере как никак работаю) в том числе и правой. Вот, что-то типа этого после авторизации (п.1) обнаруживается:

 
Код:
<form method="get">
          <input type="hidden" name="session_id" value="ec4c1bf11b49b271e5d9ce6e8a3265ce">

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

Цитата:
Originally posted by ART-CODE

Однако есть вариант, когда этот параметр
генерится диамически на стороне клиента в браузере
при помощи JavaScript - в этом случае , конечно
нужно понять логику работы этого скрипта и
имитировать ее...


Вроде он генерится сервером и по смыслу названия идентификатора вроде так получается...

Цитата:
Originally posted by ART-CODE

Как всегда рулит полный перехват ВСЕХ
отправляемых и принимаемых данных и анализ ...
Да, и еще - очень важно - перед перехватом не забывай сбрасывать Кеш браузера - чтобы ничего не пропустить... (Удалить файлы и Удалить "Cookie")
Для обеспечения перехвата можно по- прежнему использоватьTcpLogger или использовать программу TinyHTTPGate от http://mike.nov.ru/
немного доработав ее самостоятельно для сохранения всех передаваемых и принимаемых данных

Скачать исходники TinyHTTPGate


Да. Забыл старый проверенный способ. Спасибо за ссылку.

Есть еще маленький, вопрос:
Т.к. Я работаю c WinInet да еще и два запроса отправляю, то это вызывает некоторое затупление (на 2-5 сек) IE (код запускается по нажатии на кнопочку на панели IE) перед тем как юзер увидит окошечко с заветным числом. Мало того, что это не понравится пользователям - это не нравится мне самому. Так вот думаю как-бы ускорить процесс? Session_id Я уже запоминаю на текущую дату - результат затупление только при самом первом запросе. Потом сейчас Я качаю страницу полностью, хотя как видно при первом запросе мне это делать необязательно. Я бы добавил в хедер при запросе Content-Range, но чего-то нифига не получается. Будь другом приведи примерчик?

Хотя может мне просто сделать 1 раз:

 
Код:
::InternetReadFile(hRequest, (LPVOID)szTemp, 500, &dwRead))

вместо чтения всей страницы в цикле. Это будет корректно? И читать Я смогу только сначала...

В итоге наверно все равно придется перейти на запрос на сокетах.
2.3K
22 ноября 2005 года
ART-CODE
134 / / 15.11.2004
Цитата:
Originally posted by GIZMO
...
В итоге наверно все равно придется перейти на запрос на сокетах.



Наверно так будет правильно - на сокетах.
НO ! Eсли на том сайте когда-нибудь сделают SSL, да еще с проверкой сертификата пользователя, то прийдется повозиться...

А вообще - что-то много времени уходит , может не совсем корректные сетевые настройки у компа, и время уходит на всякие DNS -WINS -LMHOSTS -NetBIOS процедуры... у меня такие случаи были.
Но все может быть - и долгая инициализация кода и томоза интернета или самого сайта, к которому обращаются...

Насчет закачки файла по фрагментам - IMHO не прокатит - если он (файл) генерится динамически , через CGI (а это единственный способ вставить туда актуальное значение сессии).
Такая фича (закачка файла по фрагментам) обеспечивается функционалом самого WEB Server а CGI про такое скорее всего ничего не знает и не умеет (если, конечно, разработчик скрипта не извратился особым образом, но это очень мало вероятно - и даже если сделал это , то скорее всего там свои особые команды для закачки по фрагментам).

Жаль, но ничего нового , наверно я не сказал...
Удачи.

246
22 ноября 2005 года
GIZMO
1.8K / / 30.07.2004
Цитата:
Originally posted by ART-CODE
Наверно так будет правильно - на сокетах.
НO ! Eсли на том сайте когда-нибудь сделают SSL, да еще с проверкой сертификата пользователя, то прийдется повозиться...



В первом посте:
https://statserv.home.net/cgi-bin/clients/deal_service?...

поэтому Я и пользуюсь WinInet.

2.3K
22 ноября 2005 года
ART-CODE
134 / / 15.11.2004
Цитата:
Originally posted by GIZMO
поэтому Я и пользуюсь WinInet.


Да, не внимательно это я...

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

Для упрощения работы попробуй Indy HTTP клиента с SSL Intercept, наверняка в интернете примеры использования найдутся, сам я пока такое не делал (собирал Indy HTTP сервер с SSL Intercept - все работает, есть надежда, что и клиент их будет работать).
Удачи.

246
22 ноября 2005 года
GIZMO
1.8K / / 30.07.2004
Цитата:
Originally posted by ART-CODE

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


А на сокетах, без компонент есть примеры? Необязательно собственные, ссылка на какой-либо ресурс подойдет...

Цитата:
Originally posted by ART-CODE

Для упрощения работы попробуй Indy HTTP клиента с SSL Intercept, наверняка в интернете примеры использования найдутся, сам я пока такое не делал (собирал Indy HTTP сервер с SSL Intercept - все работает, есть надежда, что и клиент их будет работать).


Не-а не подойдет. Это у меня плаги к IE, тут компоненты не в тему (хоть Я и поклонник пропертей и т.п.). У меня итак уже релиз dll-ки на 300 кб тянет (хеви металл - ATL + VCL + WinInet), но для "обкатки" подойдет. Потом перепишу комик без ATL и VCL.

2.3K
23 ноября 2005 года
ART-CODE
134 / / 15.11.2004
Цитата:
Originally posted by GIZMO
А на сокетах, без компонент есть примеры? Необязательно собственные, ссылка на какой-либо ресурс подойдет...


Есть интересная иерархия классов - от простого сокета до HTTPS, кликаем на диаграмму и изучаем любой интересующий нас класс...
http://www.alhem.net/Sockets/html/classHttpsGetSocket.html
Кажется это под Linux, но если разобраться , то может и удастся переделать...
Сам пока не тестил, времени и необходимости нет...

А еще скачай "source" с
http://www.openssl.org/
может там в архиве и примеры есть , надо проверить..

Удачи.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог