1. Apache29.04.2025 в 05:42от
Загрузка...

Проблема с редиректом

Тема в разделе "С/С++/Pascal/Delphi", создана пользователем Slеnder, 25.01.2014.

  1. Slеnder

    Slеnder

    Статус:
    Оффлайн
    Регистрация:
    24.11.12
    Сообщения:
    1.518
    Репутация:
    883 +/-
    И так сразу к делу, не происходит редирект(тру стоит в настройках).
    кусок кода
    Код:
    try
      data:=tstringlist.Create;
      data.Add('username='+Acc);
      data.Add('password='+Pass);
      SendGet:=HTTP.Get('http://site.ru/');
      token:=Pars('class="bgcdw_login_form" action="',SendGet,'">');
      html:=HTTP.POST(token, data);
      Check:=HTTP.Get('http://site.ru/profile');
         if Pos('Центр управления аккаунтом',Check)<>0 then
         begin
     Rez:=1
    end
    else
     rez:=0
    except
     rez:=-1
    end;
    end;
    
    отправляется первый гет запрос,получающий токен,отправляется пост запрос на авторизацию,при ктором должен произойти редирект на другой сайт залогинившись,и 3 этап (2гет на проверку выполнен ли вход) он почему то не отправляется.
     
  2. FaTaL

    Няшный кодер for YouHack
    FaTaL

    Статус:
    Оффлайн
    Регистрация:
    06.10.12
    Сообщения:
    590
    Репутация:
    434 +/-
    Потому что редирект это исключение, сделай http.redirectMaximum:=0;
     
  3. Black(Coder)

    Black(Coder)

    Статус:
    Оффлайн
    Регистрация:
    27.01.14
    Сообщения:
    23
    Репутация:
    4 +/-
    Если посмотреть, то можно и не делать гет запроса на проверку авторизации.
    Редирект происходит только при валиде?

    Если да, воспользуйся кодом:

    Код:
    HTTP.HandleRedirect := False;
    try
     HTTP.Post(URL, Post);
     Result := 2(типа невалид если все ок, то есть, если нету редиректа).
    except
     // Тут код ошибки
     if HTTP.ResultCode = 302 then Result := 1 else Result := 0;
    end;