Единственное место я сталкиваюсь с восьмеричными литералами в эти дни, при контакте с битами полномочий на файлах в Linux, которые обычно представлены как 3 восьмеричных цифры, где каждая цифра представляет полномочия для владельца файла, группы и других пользователей соответственно.
, например, 0755 (также всего 755 с большинством инструментов командной строки) означает, что у владельца файла есть полные полномочия (чтение, запишите, выполнитесь), и группа и другие пользователи просто прочитали и выполняют полномочия.
Представление этих битов в восьмеричном облегчает выяснять, какие полномочия установлены. Можно сказать сразу что 0755 средств, но не 493 или 0x1ed.
Да. IMHO, переопределение GetWebRequest () - лучшее решение для ограниченной функциональности WebClient. Прежде чем я узнал об этой опции, я написал много действительно болезненного кода на уровне HttpWebRequest, потому что WebClient почти, но не совсем, сделал то, что мне нужно. Вывод намного проще.
Другой вариант - использовать обычный класс WebClient, но вручную заполнить заголовок Cookie перед отправкой запроса, а затем извлечь заголовок Set-Cookies из ответа. В классе CookieContainer есть вспомогательные методы, которые упрощают создание и анализ этих заголовков: CookieContainer. SetCookies ()
и CookieContainer.GetCookieHeader ()
соответственно.
Я предпочитаю первый подход, так как он проще для вызывающего и требует меньше повторяющегося кода, чем второй вариант. Кроме того, метод деривации работает одинаково для нескольких сценариев расширяемости (например, куки, прокси и т. Д.).