Подтвердить что ты не робот

Как использовать файлы cookie с HttpWebRequest

Я создаю приложение для поиска данных с веб-страницы. Страница защищена паролем и при входе пользователя в файл cookie.

Чтобы получить данные, сначала необходимо войти в систему: сделать веб-запрос с именем пользователя и паролем и сохранить файл 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();
    }
}

Кто-нибудь знает, как изменить этот метод, чтобы добавить файл cookie в заголовок?

Я был бы также благодарен, если бы кто-нибудь предложил способ сохранить cookie из ответа (когда приложение делает запрос http: xxx.xxx.xxx/login? Username = xxx & password = xxx, cookie создан и должен храниться для будущих запросов).

4b9b3361

Ответ 1

CookieContainer cookieContainer = new CookieContainer();
HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create(...);
httpWebRequest.CookieContainer = cookieContainer;

Затем вы повторно используете этот CookieContainer в последующих запросах:

HttpWebRequest httpWebRequest2 = (HttpWebRequest)WebRequest.Create(...);
httpWebRequest2.CookieContainer = cookieContainer;