У меня есть 3000 строк Cookies, взял я их с браузера FireFox с помощи расширения, что бы попробовать авторизоваться в разных сервисах.
Перевел я 3000 строк в формат netscape из json, после загружаю их в ContainerCookie и отправляю их в запрос HttpWebRequest. Пытаюсь войти в Gmail, и не получается, перебрасывает на страницу с авторизацией.
Может дело все в размере? Или там есть какие то куки которые присутствуют авторизации Gmail. Потому что эти же куки я опять загружаю в FireFox (через расширение) и у меня все работает, а через запрос HttpWebRequest не могу.
Вот мой код:
internal class Program
{
public static List<String[]> GetCookieLines(String fileName)
{
List<String[]> cookieLines = new List<String[]>();
using (FileStream fs = new FileStream(fileName, FileMode.Open))
using (StreamReader rdr = new StreamReader(fs, Encoding.UTF8))
{
String line; // Создаем Strin Line.
while ((line = rdr.ReadLine()) != null)
{
String[] components = line.Split('\t');
cookieLines.Add(components);
}
}
return cookieLines;
}
static void Main(string[] args)
{
CookieContainer cookieContainer = new CookieContainer();
Console.WriteLine("Введите путь к кукам");
string d = Console.ReadLine();
List<String[]> list = new List<string[]>();
list = GetCookieLines(d);
foreach (string[] p in list)
{
cookieContainer.Add(new Cookie(p[5].Replace(",", "%2C"), p[6].Replace(",", "%2C"), "/", p[0].Replace(",", "%2C")));
Console.WriteLine(p[0] + "|" + p[1] + "|" + p[2]);
}
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create("https://mail.google.com/mail/u/0/#inbox");
request.CookieContainer = cookieContainer; // В request ложим куки.
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
using (Stream stream = response.GetResponseStream())
{
using (StreamReader reader = new StreamReader(stream))
{
string line = "";
while ((line = reader.ReadLine()) != null)
{
File.AppendAllText("C:/Users/kusch/Desktop/Новая папка" + "/" + "resilt.txt", line);
}
}
}
Console.ReadKey();
}
}
HttpWebRequestустарел, когда я еще в школу ходил. Сейчас в школу ходит мой сын. ИспользуйтеHttpClient. https://ru.stackoverflow.com/q/1178026/373567 И причем тут Гугл Хром? Если кратко, то распарсить куки не так то просто. Потом у CookieCollection есть свои встроенные прибамбасы, авторизуйтесь прямо в C#, не используйте браузер. И Гугл очень хорошо защищен от ботов. – aepot May 20 '22 at 10:49