Поможіть виправить ошибку

программирование делфи

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
procedure TForm1.Button1Click(Sender: TObject);
var
s: string;
i: Integer;
http: TIdHTTP;
begin
http := TIdHTTP.Create;
// Москировка под оперу :)
http.Request.UserAgent :='Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.7.62 Version/11.01';
// Отлавливаем редирект. ВАЖНО!!! Иначе не установятся куки
try
// Отправляем Логин и Пароль
s:=http.Get('http://vkontakte.ru/login.php?m=1&email='+Edit1.Text+'&pass='+Edit2.Text); //тут вибиває ошибка
except
// Если редирект - Редиректим
if http.ResponseCode = 302 then
s := http.Get('http://vkontakte.ru' + http.Response.Location);
end;
// Авторизация пройдена
// Для проверки загрузим последние Личные Сообщения
s := http.Get('http://vkontakte.ru/mail.php');
i := 1;

http.Free;
end;
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Project Projectl.exe raised exception dass EldHTTPProtocolException with message 'HTTP/l. 1 302 Found'.

Примечание:
Torbins я спробував
вибиває ошибку
----------------------------------------
| Socket Error # 11001 |
| Host not found. |
---------------------------------------
Ответы:
Ви пробували запустити програму саму по собі, окремо від делфі? Під час запуску під налагоджувачем там дійсно має видавати помилку, але в програмі така ситуація передбачена, тому цю помилку треба ігнорувати.
Это можно считать нормальным, просто из исключения нужно получить новый URI, на который пошел редирект и снова сделать GET. Для того там обработчик исключения и делается. Только я бы его не так писал:
try
  s:=http.Get('http://vkontakte.ru/login.php?m=1&email='+Edit1.Text+'&pass='+Edit2.Text);
except on e : EIDHttpProtocolException do
  Begin
    if e.ErrorCode = 302 then
      begin
        try
           s := http.Get('http://vkontakte.ru' + http.Response.Location);
Моя рекомендація - покиньте Indy, візьміть Clever Internet Suite. Там і автоматичний HTTP Redirect, і SSL  з коробки...


13 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.