1
:이 코드와 인디 사용하여 HTTP 세션을 만들려고하고
var
idHttp1 : TidHttp;
lIOHandler: TIdSSLIOHandlerSocketOpenSSL;
idCookie : TIdCookieManager;
Initalized : boolean;
procedure InitSession;
begin
Initalized := True;
try
idHttp1 := TIdHTTP.Create(nil); //the variables are declared globally
lIOHandler := TIdSSLIOHandlerSocketOpenSSL.Create(nil);
idCookie := TIdCookieManager.Create(nil);
idHttp1.Request.UserAgent := 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.2; Trident/6.0)';
idHttp1.Request.Referer := 'https://www.parts.bmwgroup.com/';
idHttp1.Request.AcceptLanguage := 'de';
idHttp1.ConnectTimeout := 10000;
idHttp1.ReadTimeout := 10000;
idHttp1.Response.KeepAlive := true;
idHttp1.IOHandler := lIOHandler;
idHttp1.HandleRedirects := true;
idHttp1.CookieManager := idCookie;
idHttp1.AllowCookies := true;
ShowMessage(IntToStr(idCookie.CookieCollection.Count));
except
Initalized := False;
end;
end;
그런 다음 내가 웹 사이트에 로그인하는 데 사용되는 새로운 세션 ID를 만들려면이 뭐하는 거지를 :
begin
...
s := IdHTTP1.Get('https://www.parts.bmwgroup.com/tetis/startTetisAction.do?LOGON_USERID=XXXXXXXX&LOGON_PASSWD=XXXXXXXX');
end
그리고 지금을 난에서 작업 할 때 : 나는 웹 사이트에서 세션을 얻을 때
begin
...
s := IdHTTP1.Get('https://www.parts.bmwgroup.com/tetis/index.jsp?DOMAIN=Internet');
end
, 내가 로그인 시도 tern content 다음과 같은 HTTP 메시지가 나타납니다.
<html>
<head>
<script language="JavaScript">
function zeigeLogin()
{
open ("/tetis/startTetisAction.do","TeTIS");
}
</script>
<title>Aftersales Assistance Portal ASAP</title>
<link rel="STYLESHEET" type="text/css" href="/tetis/css/content.css">
</head>
<body link="#003399" vlink="#666666" alink="#003399">
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td class="hl1">Aftersales Assistance Portal ASAP</td>
</tr>
<tr>
<td class="hl2">Ihre Session ist ungultig.<BR>Bitte melden Sie sich neu an.<BR>
<BR>
<a href="javascript:zeigeLogin()" class="h12red9">> Login</a></td>
</td>
</tr>
</table>
</body>
</html>
왜 내 세션이 작동하지 않습니까?
당신의 코드를하려고하지만, POST 요청을 보낸다. IE11로 로그인 할 때 요청 만 받는다. http://i.stack.imgur.com/bfSSk.jpg http://i.stack.imgur.com/JfIVA.jpg 및 코드에서 당신은 IdHTTP1.POST 의미 : 은 이쪽을 봐주세요 왜냐하면 IdHTTP1.Get은 오류 메시지를 표시하기 때문입니다. – user3791601
사용자 이름으로 로그인을 시도 할 수 있습니다. eu444444 비밀번호 : minietk1 – user3791601
내 답변을 게시하기 전에 먼저 시도했습니다 (존재하지 않는 자격 증명을 사용하여 요청을 볼 수 있음). 앞서 말한 것은 IE11이 실제로하는 것을 본 것입니다. 세션 URL을 방문하면 'GET'대신 'POST'를 사용하여 제출되는 로그인 양식이있는 팝업 창이 열립니다. 이것이 내가 여러분에게 준 코드입니다. 내가 준 코드를 해봤습니까? 어떤 성공을 했습니까? 아니면 여전히 오류가 있습니까? –