2012-07-15 8 views
1

웹 사이트에 로그온하여 쿠키가 실행되도록하려고합니다. 내가 이해하는 바에 따르면, IdCookieManager를 IdHTTP에 할당하고 AllowCookies:=true을 설정하는 것이 내가해야 할 모든 것입니다. 로그인 후 쿠키가 성공적으로 수신되었지만 추가 탐색을 시도하면 쿠키가 전송되지 않습니다. 나는 문제가 무엇인지 모르는IdHTTP가있는 IdCookieManager가 쿠키를 보내지 않음

procedure TForm1.Login; 
var data: TStringList; 
begin 
    data:=TStringList.Create; 

    try 
    IdHTTP.Get('http://navratdoreality.cz/'); // Here I receive Set-Cookie 

    data.Add('ACTION=check_adult'); 
    data.Add('check=18plus'); 

    Memo1.text:=IdHTTP.Post('http://navratdoreality.cz/',data); // Here the 
    // request contains the cookie and I get a succesfully-logged page in 
    // response, no more set-cookie 
    except 
    ShowMessage('err'); 
    end; 

    data.Free; 
end; 

procedure TForm1.Navigate; 
var ms:TMemoryStream; 
begin 
    ms:=TMemoryStream.Create; 
    try 
    IdHTTP.Get('http://www.navratdoreality.cz/?p=view&id='+Edit1.Text, ms); 
    // the request doesn't contain any cookies, even though the cookie from 
    // logging is saved in IdCookieManager 

    ms.Position:=0; 
    Memo1.Lines.LoadFromStream(ms, TEncoding.UTF8); 
    except 
    ShowMessage('err'); 
    end; 

    ms.Free; 
end; 

: 여기

는 내가 가지고있는 코드입니다. 내 인디는 10.5.8.0입니다. 당신이 사이트를 보려고한다면 조심하십시오. 그 중 일부는 nsfw입니다.

답변

0

좋아

덕분에, 이것은 아주 바보 같은 질문이었다. 문제는 로그인 부분이 http://navratdoreality.cz 인 반면 다음 부분은 http://www.navratdoreality.cz이었습니다. 두 URL 모두 동일하게 표시되었지만 IdCookieManager와는 분명히 다르기 때문에 쿠키가 전송되지 않았습니다.

+0

쿠키의 관점에서 볼 때 'navratdoreality.cz'와 'www.navratdoreality.cz'는 별도의 도메인이므로 쿠키의 속성이 해당 공유를 허용하지 않는 한 서로 쿠키를 공유 할 수 없습니다. –

관련 문제