Я пытаюсь войти на сайт. Это нужно сделать с помощью запроса POST. Но мне нужно как-то хранить файл cookie.Как сохранить cookie после входа в систему
Мой реальный код:
public void botLogin(string userName, string passWord)
{
ASCIIEncoding encoding = new ASCIIEncoding();
string post_data = "username=" + userName + "&password=" + passWord;
byte[] data = encoding.GetBytes(post_data);
var requestUri = "http://registration.zwinky.com/registration/loginAjax.jhtml";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(requestUri);
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = data.Length;
var sharedCookies = new CookieContainer();
request.CookieContainer = sharedCookies;
Stream stream = request.GetRequestStream();
stream.Write(data, 0, data.Length);
stream.Close();
WebResponse response = request.GetResponse();
stream = response.GetResponseStream();
StreamReader sr = new StreamReader(stream);
MessageBox.Show(sr.ReadToEnd());
sr.Close();
stream.Close();
}
Как бы я хранить печенье теперь использовать его для других запросов?
Теперь функция обновляется в верхнем коде. Как я могу назвать этот файл cookie другими методами? – questiionxx
Как упоминалось christoph, процедура botlogin должна использовать переменную класса для контейнера cookie (или вернуть ее в параметр out). Вы также можете определить HttpWebRequest как переменную класса и использовать его для последующих запросов. --- Предупреждение: обратите внимание на возможные автоматические перенаправления, которые не сохраняют файлы cookie, предоставляемые перенаправленным URL. – Graffito