Я создаю приложение для извлечения данных с веб-страницы. Страница защищена паролем и при входе пользователя в файл cookie.Как использовать файлы cookie с HttpWebRequest
Для извлечения данных, которые необходимо выполнить приложению, выполните следующие действия: сделайте веб-запрос с именем пользователя и паролем и сохраните файл cookie. Затем, когда файл cookie сохраняется, он должен быть добавлен в заголовки всех запросов.
здесь является метод, который делает запросы и получает содержание:
public void getAsyncDailyPDPContextActivationDeactivation()
{
HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create(dailyPDPContextActivationDeactivation);
IAsyncResult asyncResult = httpWebRequest.BeginGetResponse(null, null);
asyncResult.AsyncWaitHandle.WaitOne();
using (HttpWebResponse httpWebResponse = (HttpWebResponse)httpWebRequest.EndGetResponse(asyncResult))
using (StreamReader responseStreamReader = new StreamReader(httpWebResponse.GetResponseStream()))
{
string responseText = responseStreamReader.ReadToEnd();
}
}
Кто-нибудь знает, как изменить этот метод, чтобы добавить печенье в заголовок?
Ниже трафаретная печать структуры заголовка запроса, сделанного с браузером:
alt text http://img404.imageshack.us/img404/4793/cookiea.jpg
Я бы также благодарен, если кто-нибудь предложил способ хранить печенье из ответа (когда марки приложения запрос http: xxx.xxx.xxx/login? username = xxx & password = xxx cookie создан и должен храниться для будущих запросов).
Я не получить его на самом деле. Почему бы вы поместили недавно созданный файл cookiecontainer (поэтому он пуст) в запрос, который вы собираетесь отправить? Разве не должно быть логичнее, что вы должны позже заполнить этот файл cookieContainer ответом? Есть ли причина, по которой это так? edit: Множество ответов дается таким образом, но я просто не могу понять, почему это делается именно так. – deltu100
Мое приложение имеет нежелательное поведение, используя это. Использование httpWebRequest2.Headers.Set («Cookie», ... отлично работает. – Eduardo
Если ранее я заходил на веб-страницу, на моем HD-файле хранится файл cookie, поэтому я могу пропустить регистрацию в программном режиме. веб-запрос автоматически ищет и заполняет содержимое найденными кукисами, или вам нужно сделать это вручную? Как это сделать, если последнее? –