Используя CookieContainer с классом WebClient

Единственное место я сталкиваюсь с восьмеричными литералами в эти дни, при контакте с битами полномочий на файлах в Linux, которые обычно представлены как 3 восьмеричных цифры, где каждая цифра представляет полномочия для владельца файла, группы и других пользователей соответственно.

, например, 0755 (также всего 755 с большинством инструментов командной строки) означает, что у владельца файла есть полные полномочия (чтение, запишите, выполнитесь), и группа и другие пользователи просто прочитали и выполняют полномочия.

Представление этих битов в восьмеричном облегчает выяснять, какие полномочия установлены. Можно сказать сразу что 0755 средств, но не 493 или 0x1ed.

142
задан Nathan Baulch 6 January 2012 в 13:54
поделиться

1 ответ

Да. IMHO, переопределение GetWebRequest () - лучшее решение для ограниченной функциональности WebClient. Прежде чем я узнал об этой опции, я написал много действительно болезненного кода на уровне HttpWebRequest, потому что WebClient почти, но не совсем, сделал то, что мне нужно. Вывод намного проще.

Другой вариант - использовать обычный класс WebClient, но вручную заполнить заголовок Cookie перед отправкой запроса, а затем извлечь заголовок Set-Cookies из ответа. В классе CookieContainer есть вспомогательные методы, которые упрощают создание и анализ этих заголовков: CookieContainer. SetCookies () и CookieContainer.GetCookieHeader () соответственно.

Я предпочитаю первый подход, так как он проще для вызывающего и требует меньше повторяющегося кода, чем второй вариант. Кроме того, метод деривации работает одинаково для нескольких сценариев расширяемости (например, куки, прокси и т. Д.).

69
ответ дан 23 November 2019 в 23:05
поделиться
Другие вопросы по тегам:

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