我正在处理以下代码。
$HTTP_Request =[System.Net.WebRequest]::Create('http://google.com')
$HTTP_Response = $HTTP_Request.GetResponse()
$HTTP_Status = [int]$HTTP_Response.StatusCode
echo $HTTP_Status
但是我想使用默认凭据运行它,因为返回401的URL很少,即未经授权,我需要使用默认凭据运行。
任何人都可以帮助我,因为我想存储某些URL的状态,而且此代码工作正常,除非受到保护的代码。
,所以问题是在使用默认凭据时运行Web请求,这是我发现的解决方案:
for PowerShell 2.0: -
$req = [system.Net.WebRequest]::Create($uri)
$req.UseDefaultCredentials = $true
try
{
$res = $req.GetResponse()
}
catch [System.Net.WebException]
{
$res = $_.Exception.Response
}
$int = [int]$res.StatusCode
echo $int
for PowerShell 3.0: -
try{
$res = Invoke-WebRequest $uri -UseDefaultCredentials
}
catch [System.Net.WebException]
{
$res = $_.Exception.Response
}
$int = [int]$res.StatusCode
echo $int
两个脚本都做得很好,但是如果您想找到许多URL的代码状态,那么您应该选择PowerShell 3.0,它可以以更好的方式处理Web-要求。