Invoke-WebRequest

Материал из Неолурк, народный Lurkmore
Перейти к навигации Перейти к поиску

Invoke-WebRequest — известная команда в Power Shell, которая позволяет скачать что-то из интернета.

Описание[править]

Invoke-WebRequest был введён в Windows PowerShell 3.0 вместе с Invoke-RestMethod. До этого для HTTP-запросов приходилось использовать классы .NET (System.Net.WebClient или System.Net.HttpWebRequest), что было гораздо менее удобным. Интересно, что первое время он использовал устаревший парсер Internet Explorer, что приводило к проблемам совместимости и зависимости от IE, который как известно работал херово.

Только в весьма последовательной версии парсинг HTML был переписан на основе библиотеки AngleSharp, и только в 2020 году по умолчанию изменилась кодировка запросов на UTF-8 (который является фактически стандартом для большей части интернетов).

Нынче это вполне современная команда для всирания в сеть, поддерживает все основные HTTP-методы (GET, POST, PUT, DELETE, PATCH и др.), аутентификацию, cookies, сессии, сертификаты клиента, прокси и обработку ошибок.

Так, скажем, чтобы скачать файл, надобно громко закукарекать прямо в консоль:

Invoke-WebRequest -Uri "https://example.com/file.zip" -OutFile "C:\Downloads\file.zip" -Resume

Аналоги[править]

Торадиционные юниксовые curl и wget, которые при наличии желания вполне можно докукарекать в Windows.

Movax1010h.png Глубокий смысл скрыт в этих неестественных языках
Языки программированияПромышленные: BATC#CC++JavaJavaScript (AJAX) • PascalPerlPHPPythonRubyABAPАссемблерВасикFortran (Профессор)
Эзотерические: BrainFuckHQ9++ErlangForthHaskellLISP (My other car) • PrologTclΤΕΧOracleMySQLGolangВ++ScalaH и Ё+Программист-бетонщик
ПрофессииБыдлокодерПрограммистТестировщикХакерХеллоуворлдщикIT-звёздыПрограммист (существо)Тернарный операторUnreal MCPИсходный кодSingle-Page ApplicationGiteaForgejoCephIDEДжуниорРепозиторийPostgreSQLSQLiteJQueryБуферWebGLПереполнение буфераХардкодInvoke-WebRequestСкрипт для автоблокировки новых пользователейРазделение диапазоновПроверка диапазоновGeoLite2-Country.mmdbObjective-C
Методы и стилиReverse EngineeringАнти-паттернВыстрелить себе в ногуГрязный хакКод (индусский) • КостыльМетод научного тыкаПомолясьСвистелки и перделкиОчередьСпортивное программированиеОбфускацияБета-тестАльфа-тестШаблоныRegReplaceФреймворкБыдлокодIndex.phpОхота за жукамиКуМирКлеточный автоматПроцедурное программированиеПоиск файлов в Unix по содержимомуPetoohФункция активации нейронаПерегрузка операторов в PythonЗерокодинг
Средства разработкиSublime TextПодсветка синтаксиса кодаUnstable DiffusionAPIPythonTutorCodeWarsDataCampUnity3DКнижный PythonMallocСвязный списокSOLIDООПУказательNULLWeLang++XenonRecompFuse.jsОптимизацияТестированиеAmbreon866Реверс-инжинирингКроссплатформенностьJSON
ЛюдиИлья КанторЮрий КлючевскийЭдуард ЛаасЭдвард СноуденСеймур ПейпертПроблемаK!ockyTypeScriptОтладчикБитЭффективный менеджер (IT)TauriReact NativeWindows APIТипPyTorchTensorFlowПарсерNode.jsFastAPIVue.jsSvelteБэкендElectronBroken Object Level AuthorizationМаппингДжастин ФранкельHex-редакторVisual Basic .NETNext.jsDocker ComposeNode modulesIndexedDBDos2unix
Прочее++i + ++iДедлайн%s640 килобайтCMSDummy modeЕГГОГFoobarGod is real, unless explicitly declared as integerGOTOIfconfigKISSRegExpSICPsql.ruXyzzyДискетаИнжалид дежицеКОИ-8ЛогМанРекурсияСУБДТест ТьюрингаУмение разбираться в чужом кодеФаза ЛуныФатальный недостатокПроблема 2000ТаймстампКэшЗапись в файл без кэша (Perl)Танцы с бубномКодачХукCurl cffiВибе-кодингFlutterАппликативный оператор
Шаблон:Windows