подскажите после авторизации на сайте нужно получить html страницы для дальнейшего парсинга делаю так httpRequest.KeepAlive = true; httpRequest.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.162 Safari/535.19"; httpRequest.Referer = "https://qwerrrr.ruuu"; httpRequest.ContentType = "application/x-www-form-urlencoded; charset=UTF-8"; httpRequest.Cookies = Network.Cookie; new WebClient().DownloadFile("https://https://qwerrrr.ruuu", "myBook.pdf"); Код httpRequest.KeepAlive = true; httpRequest.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.162 Safari/535.19"; httpRequest.Referer = "https://qwerrrr.ruuu"; httpRequest.ContentType = "application/x-www-form-urlencoded; charset=UTF-8"; httpRequest.Cookies = Network.Cookie; new WebClient().DownloadFile("https://https://qwerrrr.ruuu", "myBook.pdf"); но получаю html что я не авторизован Как получить код страницы как в браузере после авторизации
HttpRequest httpRequest = new HttpRequest(); httpRequest.KeepAlive = true; httpRequest.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.162 Safari/535.19"; HttpResponse httpResponse = httpRequest.Get("http://site.ru", null); Network.Cookie = httpResponse.Cookies; byte[] bytes = Encoding.GetEncoding(1251).GetBytes(string.Format("user={0}&pass={1}&login_submit=%CE%F2%EF%F0%E0%E2%E8%F2%FC", login, password)); httpRequest.ClearAllHeaders(); httpRequest.KeepAlive = true; httpRequest.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.162 Safari/535.19"; httpRequest.Referer = "http://site.ru"; httpRequest.ContentType = "application/x-www-form-urlencoded"; httpRequest.AllowAutoRedirect = false; httpRequest.Cookies = Network.Cookie; httpResponse = httpRequest.Post("http://site.ru", bytes); Network.Cookie = httpResponse.Cookies; if (httpResponse.HasRedirect) { Network.Логин = login; result = true; Код HttpRequest httpRequest = new HttpRequest(); httpRequest.KeepAlive = true; httpRequest.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.162 Safari/535.19"; HttpResponse httpResponse = httpRequest.Get("http://site.ru", null); Network.Cookie = httpResponse.Cookies; byte[] bytes = Encoding.GetEncoding(1251).GetBytes(string.Format("user={0}&pass={1}&login_submit=%CE%F2%EF%F0%E0%E2%E8%F2%FC", login, password)); httpRequest.ClearAllHeaders(); httpRequest.KeepAlive = true; httpRequest.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.162 Safari/535.19"; httpRequest.Referer = "http://site.ru"; httpRequest.ContentType = "application/x-www-form-urlencoded"; httpRequest.AllowAutoRedirect = false; httpRequest.Cookies = Network.Cookie; httpResponse = httpRequest.Post("http://site.ru", bytes); Network.Cookie = httpResponse.Cookies; if (httpResponse.HasRedirect) { Network.Логин = login; result = true;
После авторизации ты должен сохранить куки. Хз, как там в xNet, но в стандартном шарпе есть класс CookieContainer. var req = (HttpWebRequest)WebRequest.Create("ссылка на php"); CookieContainer cc = new CookieContainer(); req.CookieContainer = cc; //Заполняешь запрос var resp = (HttpWebResponse)req.GetResponse(); Код var req = (HttpWebRequest)WebRequest.Create("ссылка на php"); CookieContainer cc = new CookieContainer(); req.CookieContainer = cc; //Заполняешь запрос var resp = (HttpWebResponse)req.GetResponse(); Если авторизация успешна - с этими куками ты посылаешь еще один на нужную тебе стр и смотришь html код. Чекни msdn, там есть примеры.
После HttpRequest httpRequest = new HttpRequest(); добавь: httpRequest.Cookies = new CookieDictionary(); И удали это: Network.Cookie = httpResponse.Cookies; httpRequest.Cookies = Network.Cookie; По идеи xNet должен автоматически хранить куки одного сайта и использовать их в последущих запросах