세션ID는 재주껏 가져오자.
쿠키에 저장되어 있으니.
TWebBrowser에서 세션ID 가져오기 : http://bloodguy.tistory.com/entry/Delphi-TWebBrowser에서-세션아이디SessionID-가져오기
// URL에서 도메인명만 따냄
function GetHostNameFromURL(URL: String): String;
var PosSlash: Integer;
begin
Result:=Trim(URL);
Result:=MidStr(Result, Pos('://', Result)+3, Length(Result));
PosSlash:=Pos('/', Result);
if PosSlash>0 then Result:=MidStr(Result, 1, PosSlash-1);
end;
// 세션ID를 포함하여 GET 요청
function GetWithSessionID(URL, SessID: String): String;
var
HTTP: TIdHTTP;
Cookie: TIdCookieManager;
HostName: String;
begin
Result:='';
HTTP:=TIdHTTP.Create(nil);
Cookie:=TIdCookieManager.Create(nil);
try
HTTP.CookieManager:=Cookie;
Cookie.AddCookie('PHPSESSID='+SessID, GetHostNameFromURL(URL));
try
Result:=HTTP.Get(URL);
except on E:Exception do
OutputDebugString(PWideChar(E.Message));
end;
finally
FreeAndNil(Cookie);
FreeAndNil(HTTP);
end;
end;
function GetHostNameFromURL(URL: String): String;
var PosSlash: Integer;
begin
Result:=Trim(URL);
Result:=MidStr(Result, Pos('://', Result)+3, Length(Result));
PosSlash:=Pos('/', Result);
if PosSlash>0 then Result:=MidStr(Result, 1, PosSlash-1);
end;
// 세션ID를 포함하여 GET 요청
function GetWithSessionID(URL, SessID: String): String;
var
HTTP: TIdHTTP;
Cookie: TIdCookieManager;
HostName: String;
begin
Result:='';
HTTP:=TIdHTTP.Create(nil);
Cookie:=TIdCookieManager.Create(nil);
try
HTTP.CookieManager:=Cookie;
Cookie.AddCookie('PHPSESSID='+SessID, GetHostNameFromURL(URL));
try
Result:=HTTP.Get(URL);
except on E:Exception do
OutputDebugString(PWideChar(E.Message));
end;
finally
FreeAndNil(Cookie);
FreeAndNil(HTTP);
end;
end;
'Delphi' 카테고리의 다른 글
[Delphi] 특정 DLL을 로딩하고 있는 프로세스 종료시키기 (2) | 2010.06.17 |
---|---|
[Delphi] MD5 (TIdMessageDigest5) (0) | 2010.06.17 |
[Delphi] TWebBrowser에서 세션아이디(SessionID) 가져오기 (0) | 2010.06.17 |
[Delphi] 다른 프로그램의 메뉴 실행시키기 (0) | 2010.06.14 |
[Delphi] 웹페이지 로딩시 '딸칵'소리 없애기 (탐색 시작, Windows Navigation Start.wav) (0) | 2010.06.14 |