2013-03-26 2 views
-4

Я пытаюсь войти в Craigslist с помощью Delphi 2010 и последней версии Indy 10 и получить мою страницу учетной записи (чтобы собрать список всех моих сообщений).Почему я получаю страницу входа, когда я пытаюсь войти в Craigslist?

Однако, когда я публикую данные для входа, the returned HTML является that of the login page, тогда как я ожидаю получить my account page listing my postings.

Вот мой последний код:

function TfrmMain.Login: string; 
var 
    IdHTTP: TIdHTTP; 
    Request: TStringList; 
    Response: TMemoryStream; 
    SSLHandler: TIdSSLIOHandlerSocketOpenSSL; 
begin 
    Result := ''; 
    try 
    Response := TMemoryStream.Create; 
    try 
     Request := TStringList.Create; 
     try 
     Request.Add('op=login'); 
     Request.Add('redirect=http://www.craigslist.org/'); 
     Request.Add('login=' + edtEmail.Text); 
     Request.Add('password=' + edtPassword.Text); 
     IdHTTP := TIdHTTP.Create; 
     try 
      SSLHandler := TIdSSLIOHandlerSocketOpenSSL.Create(nil); 
      try 
      SSLHandler.SSLOptions.Method := sslvSSLv3; 
      SSLHandler.SSLOptions.Mode := sslmUnassigned; 

      IdHTTP.IOHandler := SSLHandler; 
      IdHTTP.AllowCookies := True; 
      IdHTTP.HandleRedirects := True; 
      IdHTTP.Request.ContentType := 'application/x-www-form-urlencoded'; 
      IdHTTP.Post('https://accounts.craigslist.org/login', Request, Response); 
      Result := IdHTTP.Get('https://accounts.craigslist.org/'); 
      finally 
      SSLHandler.Free; 
      end; 
     finally 
      IdHTTP.Free; 
     end; 
     finally 
     Request.Free; 
     end; 
    finally 
     Response.Free; 
    end; 
    except 
    on E: Exception do 
     ShowMessage(E.Message); 
    end; 
end; 

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

ответ

4

Согласно HTML, который вы получили, имя поля входа: inputEmailHandle, а не login. Аналогичным образом, поле пароля: , а не password. Также есть некоторые дополнительные поля, которые вы опускаете, включая step, rt и rp. Я не вижу op или redirect полей в форме.

Другими словами, код, показанный здесь, не является кодом для входа в Craigslist; это code for logging in to Filestrum с измененными адресами, независимо от значения окружающего кода.