Hola, estoy intentando acceder a una web con mi nombre de usuario y contraseña usando TIdhttp.Post y creo que usa autenticación Web, pero no estoy seguro porque examinando el código HTML en chrome no aparece ninguna entrada de la forma
Código:
<form method="post" action="url"
Es la web de un periódico que ha implantado suscripción hace muy poco, y lo que me temo es que oculta de alguna forma esos datos, y no sé lo suficiente de este tema para saber si los navegadores los obtienen mediante algún código javascript o como lo hacen, o simplemente es que no usa el procedimiento post y lo hace haciendo get, pero me extrañaría mucho.
Mi código es:
Código:
function Login: string;
var
Request: TStringList;
IdSSLIOHandlerSocket: TIdSSLIOHandlerSocketOpenSSL;
begin
Result := '';
IdSSLIOHandlerSocket := TIdSSLIOHandlerSocketOpenSSL.Create(self);
try
Request := TStringList.Create;
try
Request.Add('username=miusername');
Request.Add('password=mipassword');
Request.Add('remember=1');
Request.Add('remember=true'); // hay una casilla de verificación con ese "name" y no se si ponerle 1 o true
IDHttp1.IOHandler:= IdSSLIOHandlerSocket;
IdHTTP1.AllowCookies := True;
IdHTTP1.HandleRedirects := True;
IdHTTP1.Request.ContentType := 'application/x-www-form-urlencoded';
IdHTTP1.Request.Connection := 'keep-alive';
Result := IdHTTP1.Post({url donde está físicamente el botón de submit}, Request);
finally
Request.Free;
end;
except
on E: Exception do ShowMessage(E.Message);
end;
end;
En el retorno del Post tengo el mismo código HTML que puedo ver en chrome en la página del login.
En Idhttp1.Response.RawHeaders.Text puedo ver que la conexión está cerrada, así que no ha funcionado lo de keep-alive y no hay ninguna cookie, por lo que no hago el login realmente.
Supongo que lo que está mal es que la url que tengo que poner en la instrucción Post no es esa, y sería la que en casi todos los ejemplos que he visto la que vendría en <form action, de haber alguna en el código fuente, pero ya digo que no hay.
Entonces, ¿alguna idea de cómo puedo obtener esa url? Se supone que en algún sitio tiene que estar, para que los navegadores vayan allí, a no ser que los navegadores en sí sean los que se encargan de ocultarla por algún convenio que haya por ahí extraño. Muchas gracias por cualquier idea, si acaso puedo mandar la url por mp.