我正在尝试使用 Delphi 2010 和最新版本的 Indy 10 登录 Craigslist,并检索我的帐户页面(以收集我所有帖子的列表)。
但是,当我发布登录详细信息时,返回的 HTML是登录页面的HTML ,而我希望让我的帐户页面列出我的帖子。
这是我的最新代码:
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;
我已经通过调试确认电子邮件和密码是正确的值,因为它们是在请求参数中传递的,所以为什么我没有得到我期望的页面?