Несколько WebRequest на той же сессии

Следуйте инструкциям по настройке концентратора и с помощью .Net Client . По сути, консольные приложения являются клиентами вашего хаба. Думайте о концентраторе как о реле. Вы можете зайти в «консольное приложение сигнализатора» и получить много информации о том, как это настроить.

16
задан Ankit 24 April 2009 в 23:48
поделиться

1 ответ

Сессии обычно работают с использованием файлов cookie. Если вы хотите, чтобы все ваши запросы были частью одного сеанса, вам необходимо сохранять файлы cookie между запросами. Вы делаете это, создавая CookieContainer и предоставляя его каждому из объектов HttpWebRequest.

Вот ваш код, обновленный для использования CookieContainer:

    void SaveUrl(string sourceURL, string savepath) {
        CookieContainer cookies = new CookieContainer();
        HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(sourceURL);
        webRequest.CookieContainer = cookies;

        HttpWebResponse response = (HttpWebResponse)webRequest.GetResponse();
        StreamReader responseReader = new StreamReader(response.GetResponseStream());

        string sResponseHTML = responseReader.ReadToEnd();
        using (StreamWriter sw = new StreamWriter(savepath, false)) {
            sw.Write(sResponseHTML);
        }

        string[] ImageUrl = GetImgLinks(sResponseHTML);
        foreach (string imagelink in ImageUrl) {
            HttpWebRequest imgRequest = (HttpWebRequest)WebRequest.Create(imagelink);
            imgRequest.CookieContainer = cookies;
            HttpWebResponse imgresponse = (HttpWebResponse)imgRequest.GetResponse();
            //Code to save image
        }
    }
32
ответ дан 30 November 2019 в 17:28
поделиться
Другие вопросы по тегам:

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