Этой темой я открою цикл ответов и объяснений самых распространенных проблем, с которыми сталкиваются программисты Delphi при написании программ, которые должны взаимодействовать с удаленными WEB сайтами. Итак, у нас стоит задача при работе своей программы авторизоваться на неком удаленном сайте. Для простейшего примера я взял портал mail.ru Зарегистрировал там пользователя programmers с паролем 1234 Итак, сначала немного теории: Авторизация на любом сайте происходит путем заполнения формы и отправки её данных некому удаленному крипту методом POST. На самом деле после того как вы заполнили формы и нажали на кнопку, данные отправятся в виде простой строки, содержащей все параметры и их значения разделенные разделителем. Все формы на страницах описываются тегом имеющим достаточное кол-во параметров, приведу самые нужные для нас: Параметр method Значение параметра method не зависит от регистра. Различают два метода — GET и POST. Существуют и другие методы, но они пока мало используются. GET Этот метод является одним из самых распространенных и предназначен для получения требуемой информации и передачи данных в адресной строке. Пары «имя=значение» присоединяются в этом случае к адресу после вопросительного знака и разделяются между собой амперсандом (символ &). Удобство использования метода GET заключается в том, что адрес со всеми параметрами можно использовать неоднократно, сохранив его, например, в «Избранное» браузера, а также менять значения параметров прямо в адресной строке. POST Метод POST посылает на сервер данные в запросе браузера. Это позволяет отправлять большее количество данных, чем доступно методу GET, поскольку у него установлено ограничение в 4 Кб. Большие объемы данных используются в форумах, почтовых службах, заполнении базы данных и т.д.
Параметр Action Указывает обработчик, к которому обращаются данные формы при их отправке на сервер. В качестве обработчика может выступать CGI-программа или HTML-документ, который включает в себя серверные сценарии (например, Parser). После выполнения обработчиком действий по работе с данными формы он возвращает новый HTML-документ.
Если параметр action отсутствует, текущая страница перезагружается, возвращая все элементы формы к их значениям по умолчанию. Итак, заходим на сайт Mail.ru и смотрим исходный код страницы. Ищем тег "
Далее ищем закрывающий тег формы и копируем себе в блокнот все содержимое формы для его тщательного рассмотрения. Итак, вот мы получили форму: Код:
Регистрация в почтеhref="http://r.mail.ru/cln2840/www.mail.ru/pages/help/index.html">width="14" height="14" alt="" class="right" />
Если параметр action отсутствует, текущая страница перезагружается, возвращая все элементы формы к их значениям по умолчанию. Итак, заходим на сайт Mail.ru и смотрим исходный код страницы. Ищем тег "
Далее ищем закрывающий тег формы и копируем себе в блокнот все содержимое формы для его тщательного рассмотрения. Итак, вот мы получили форму: Код:
Регистрация в почтеhref="http://r.mail.ru/cln2840/www.mail.ru/pages/help/index.html">width="14" height="14" alt="" class="right" />