powershell curl 和 WebRequest 都遵循重定向
powershell curl and WebRequest both follow redirects
我试图找出我的网页返回的状态代码,根据 Linux 子系统上的 curl,这肯定是 301(永久移动),但使用 curl 或 powershell 上的 WebRequest 对象, 它 returns 200 (OK).
这是为什么?
这是因为 .NET 和 PowerShell 默认遵循重定向,但 curl 不这样做。 HttpWebRequest.AllowAutoRedirect
默认值为true,Invoke-WebRequest的MaximumRedirection默认值为5.
要通过 WebRequest 关闭自动重定向:
$request = [System.Net.WebRequest]::Create("http://google.com")
$request.AllowAutoRedirect = $false
$request.GetResponse()
或调用 WebRequest cmdlet:
Invoke-WebRequest -Uri "http://google.com" -MaximumRedirection 0
或者,使用 -L 标志在 curl 中跟随重定向:
curl -L google.com
我试图找出我的网页返回的状态代码,根据 Linux 子系统上的 curl,这肯定是 301(永久移动),但使用 curl 或 powershell 上的 WebRequest 对象, 它 returns 200 (OK).
这是为什么?
这是因为 .NET 和 PowerShell 默认遵循重定向,但 curl 不这样做。 HttpWebRequest.AllowAutoRedirect
默认值为true,Invoke-WebRequest的MaximumRedirection默认值为5.
要通过 WebRequest 关闭自动重定向:
$request = [System.Net.WebRequest]::Create("http://google.com")
$request.AllowAutoRedirect = $false
$request.GetResponse()
或调用 WebRequest cmdlet:
Invoke-WebRequest -Uri "http://google.com" -MaximumRedirection 0
或者,使用 -L 标志在 curl 中跟随重定向:
curl -L google.com