idHttp.post()를 사용하여 2 개의 사이트에서 이미 로그인하고 데이터를 게시하고 데이터를 게시했지만 세 번째 하나의
이 새로운 사이트에서 로그인이 가능하지만 다운로드 링크로 __doPostBack을 사용하는 파일을 다운로드하려고하면 오류 페이지로 리디렉션됩니다.
모든 게시물 데이터를 두 번 및 세 번 확인했습니다. http analyzer가 나에게 보여준 것과 정확히 같습니다 유일한 차이점은 다른 시도와 사이트에 성공적으로 액세스 했으므로 __ viewstate가 매번 동일하며 결코 변경되지 않지만이 세 번째 사이트에서는 각 로그인마다 변경됨 (내 말은 사이트를 수동으로 확인하고 http 분석기 결과를 확인할 수 있습니다. 각 시간마다 __viewstate 매개 변수 값이 다를 수 있습니다.)
어떻게해야합니까? 해당 __viewstate 매개 변수 변경 문제가 있습니까? 그렇다면 어떻게 해결할 수 있습니까?
내가 포스팅에 사용하는 코드 : 당신이 repsonsecode0를 확인 후 볼 수IdHttp : 파일을 다운로드하려고 할 때 오류 페이지로 리디렉션 될 때마다 __viewstate가 변경됩니다.
try
Response := TMemoryStream.Create;
try
Request := TStringList.Create;
try
Request.Assign(TATDFileUtility.convertPairValueToRequestList(TATDFileUtility.extractPairValue('the site login parameters.txt', 3)));
IdHTTP := TIdHTTP.Create;
try
IdHTTP.AllowCookies := True;
IdHTTP.HandleRedirects := True;
IdHTTP.Request.ContentType := 'application/x-www-form-urlencoded';
IdHTTP.Post('thesite, the address for the login and main page and download page is the same', Request, Response);
Response.SaveToFile('responseCode0.txt');
Request.Clear;
Response.Clear;
Request.Assign(TATDFileUtility.convertPairValueToRequestList(TATDFileUtility.extractPairValue('httpDownloadParamters.txt', 3)));
IdHTTP.Post('thesite, the address for the login and main page and download page is the same', Request, Response);
Response.SaveToFile('responseCode1.txt');
, 내가 로그인하고 있음을 알 수 있지만 두 번째 응답 코드는 나에게 오류를 표시하고 추적이 나는 것을 보여준다 오류 페이지로 리디렉션됩니다.
무엇을 기대합니까? 우리는 어느 사이트가 어떤 코드를 보지 못했는지 알지 못합니다. 단지 추측 할 수 있습니다. 당신은 똑같은 것을 보냈다고 거짓말합니다 - 당신은 그렇지 않습니다. 올바른 __viewstate 값을 얻으려면 먼저 로그인 사이트에 액세스해야합니다. 그런 다음이 값으로 로그인 한 다음 값이 변경되었는지 다시 확인하고 새 값을 사용하십시오. 그것을 고치는 것은 쉽습니다 - 정확한 값을 보내십시오. – smooty86
@ smooty86, 개인 정보 보호를 위해 사이트 주소를 공유 할 수는 없지만 코드는 위와 같습니다. –
@ smooty86, 내가 동적으로 __viewstate를 얻을 필요가 있다면 어떻게 할 수 있습니까? 내 프로그램에 줄 수 있도록 현재 __viewstate 값을 얻을 수 있습니까?, thx –