Авторизация на сайте - C# (186151)
Формулировка задачи:
Здравствуйте, на сайте вот такая форма входа:
Как отправить POST запрос для авторизации?
P.S. Посмотрел похожие темы, но разобраться не могу
Листинг программы
- <form method="post" action="/">
- <input type="text" name="login[login]" placeholder="Логин" class="form-control" autofocus="" value=""><br>
- <input type="password" name="login[pass]" placeholder="Пароль" class="form-control"><br>
- <a href="/register/remind">забыли?</a>
- <button type="submit" class="btn btn-success"><i class="icon icon-ok-circle icon-white"></i></button>
- </form>
Решение задачи: «Авторизация на сайте»
textual
Листинг программы
- public static string sendPost(string data, ref CookieContainer cookies)
- {
- HttpWebRequest request = (HttpWebRequest)WebRequest.Create(@"http://notabenoid.org/");
- request.Method = "POST";
- request.ContentType = "application/x-www-form-urlencoded";
- byte[] sentData = Encoding.UTF8.GetBytes(data);
- request.ContentLength = sentData.Length;
- request.CookieContainer = cookies;
- Stream sendStream = request.GetRequestStream();
- sendStream.Write(sentData, 0, sentData.Length);
- sendStream.Close();
- WebResponse response = request.GetResponse();
- return (new StreamReader(response.GetResponseStream())).ReadToEnd();
- }
- public static string sendGet(string url, ref CookieContainer cookies)
- {
- HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
- request.CookieContainer = cookies;
- WebResponse response = request.GetResponse();
- Stream stream = response.GetResponseStream();
- return (new StreamReader(stream)).ReadToEnd();
- }
- public static List<byte> getFile(string url, ref CookieContainer cookies)
- {
- HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
- request.CookieContainer = cookies;
- HttpWebResponse response = (HttpWebResponse)request.GetResponse();
- Stream stream = response.GetResponseStream();
- List<byte> result = new List<byte>();
- BinaryReader binaryReader = new BinaryReader(stream);
- result.AddRange(binaryReader.ReadBytes((int)response.ContentLength));
- return result;
- }
- static void Main(string[] args)
- {
- CookieContainer cookies = new CookieContainer();
- /* Для некоторых сайтов, для авторизации нужно получить Cookie,
- для вашего не нужно, поэтому в целях скорости работы не используем.
- sendGet(@"http://notabenoid.org/", ref cookies); */
- string data = "login[login]=mylogin&login[pass]=mypass";
- sendPost(data, ref cookies);
- List<byte> test = new List<byte>();
- test = getFile(@"http://notabenoid.org/book/62975/307757/download?format=t&enc=UTF-8", ref cookies);
- /* Указываем путь и расширение для записи. */
- File.WriteAllBytes(@"E:\file", test.ToArray());
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д