PowerShell Invoke-WebRequest (не отправляются куки)
Здравствуйтe. Если копировать любой запрос как PowerShell (POST или GET - не важно), то при отправке почему-то «теряются» куки - они не приходят на сервер.
Запрос выглядит следующим образом:
Invoke-WebRequest -Uri "https://example.com/" -Headers @{
"method"="GET"
"authority"="example.com"
"scheme"="https"
"path"="/"
"pragma"="no-cache"
"cache-control"="no-cache"
"sec-ch-ua"="`"Google Chrome`";v=`"89`", `"Chromium`";v=`"89`", `";Not A Brand`";v=`"99`""
"sec-ch-ua-mobile"="?0"
"upgrade-insecure-requests"="1"
"user-agent"="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.82 Safari/537.36"
"accept"="text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9"
"sec-fetch-site"="none"
"sec-fetch-mode"="navigate"
"sec-fetch-user"="?1"
"sec-fetch-dest"="document"
"accept-encoding"="gzip, deflate, br"
"accept-language"="ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7"
"cookie"="test1=none; test2=none"
}
Можете сказать, в чём причина?
Ответы (1 шт):
Автор решения: spammm
→ Ссылка
В оф. справке Microsoft сказано, что куки отправляются с помощью Microsoft.PowerShell.Commands.WebRequestSession:
$session = New-Object Microsoft.PowerShell.Commands.WebRequestSession
$c = New-Object System.Net.Cookie('cookieName','cookieValue','/', ($domain))
$session.Cookies.Add($c);
Invoke-WebRequest -Uri "https://example.com/" -WebSession $session -Headers ...
