I'm trying to download a file for which I must be logged on a site. I'm using this solution but this doesn't work. Instead of file I get a downloading page as result of request. On downloading page there two different forms, one for premium membership ( which I need) and one for free downloading with captcha. Maybe this is problem, existence of two submit buttons.
Login method:
CookieContainer container;
var request = (HttpWebRequest)WebRequest.Create(loginPageAddress);
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
var buffer = Encoding.ASCII.GetBytes(loginData.ToString());
request.ContentLength = buffer.Length;
var requestStream = request.GetRequestStream();
requestStream.Write(buffer, 0, buffer.Length);
requestStream.Close();
container = request.CookieContainer = new CookieContainer();
var response = request.GetResponse();
//response.Close();
CookieContainer = container;
return response.GetResponseStream(); //this returns a login page
Usage:
var loginAddress = url;
var loginData = new NameValueCollection
{
{ "frm-downloadDialog-loginForm-username", "username" },
{ "frm-downloadDialog-loginForm-password", "password" }
};
var client = new CookieAwareWebClient();
client.Login(loginAddress, loginData);
Login page:
<input type="text" name="username" class="text" id="frm-downloadDialog-loginForm-username" required="" data-nette-rules="[{"op":":filled","msg":"Username required."}]" value="">
<input type="password" name="password" class="text" id="frm-downloadDialog-loginForm-password" required="" data-nette-rules="[{"op":":filled","msg":"Password required."}]">
<input type="submit" name="login" class="button" id="frm-downloadDialog-loginForm-login" value="Submit">