Авторизация на сайте - 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());
}