Código
HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create("https://***.com/"); req.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"; req.CookieContainer = cc; req.UserAgent = "Mozilla/5.0 (Windows NT 6.3; WOW64; rv:33.0) Gecko/20100101 Firefox/33.0"; req.Host = "***.com"; req.Method = "POST"; req.Proxy = null; HttpWebResponse response = (HttpWebResponse)req.GetResponse(); using (Stream responseStream = response.GetResponseStream()) { using (StreamReader sr = new StreamReader(responseStream)) { string sub = "name=\"_token\" value=\""; string responseData = sr.ReadToEnd(); byte[] bytes = new byte[responseData.Length * sizeof(char)]; System.Buffer.BlockCopy(responseData.ToCharArray(), 0, bytes, 0, bytes.Length); File.WriteAllBytes("C:\\Users\\Usuario\\Desktop\\tast.txt", bytes); int indice = responseData.IndexOf(sub); if (indice == -1) { return false; } indice += sub.Length; while(responseData[indice] != '"') { token += responseData[indice]; indice++; } MessageBox.Show(token); } } }
Guardo la respuesta en un archivo en el escritorio, y trato de buscar un token necesario para iniciar la sesión en la web, ese token no aparece al hacer este post, ¿puede tener algo que ver con algún javascript que ignoraría?.
Básicamente con navegador me aparece esto al cargar el index:
Código:
name="_token" value="
Y cuando hago el https post no me sale, recibo distinta respuesta, ¿porque?. Dejando de lado el idioma etc, no creo que tenga que ver.
Dice que no la encuentra esa substring, y es que es verdad no está en el html que descarga la app en C#, pero al cargar la pag con el navegador si sale, ¿porque?.
Saludos.
Edito: Más pistas, en la página al clicar un boton salta un pop up donde metes los datos de login:
Código:
https://***.com/#show=login
Según he leido este operador (#) se usa para incluir código de otras urls más o menos, estaría bien una aclaración, seguiré leyendo.