как использовать 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 создается и должен быть сохранен для будущих запросов).

25
задан adrianbanks 27 May 2018 в 20:44
поделиться

2 ответа

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

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

HttpWebRequest httpWebRequest2 = (HttpWebRequest)WebRequest.Create(...);
httpWebRequest2.CookieContainer = cookieContainer;
36
ответ дан 28 November 2019 в 21:27
поделиться

Используйте CookieContainer или CookieAwareWebClient

0
ответ дан 28 November 2019 в 21:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: