Windows Скрипт Powershell для тестирования списка перенаправленных URL - PullRequest
1 голос
/ 05 марта 2020

Я хочу Windows скрипт PowerShell, который может проверить список URL, которые перенаправлены. Я хочу там код состояния и там целевой URL. Я получаю один URL, но не могу получить его по списку URL. Если кто-нибудь может помочь мне с вышеупомянутым.

1 Ответ

1 голос
/ 05 марта 2020

Создайте объект [WebRequest] и установите для свойства AllowAutoRedirect значение $false:

# You could read this list from a file if necessary
$urls = @('http://stackoverflow.com/')

foreach($url in $urls){
  try{
    # Create WebRequest object, disallow following redirects
    $request = [System.Net.WebRequest]::Create($url)
    $request.AllowAutoRedirect = $false

    # send the request and obtain the HTTP response
    $response = $request.GetResponse()
    $statusCode = $response.StatusCode

    # Create a new output object with the needed details
    [pscustomobject]@{
      Original = $url
      Target = if($statusCode -ge 300 -and $statusCode -lt 400) {
        $response.Headers['Location']
      };
      StatusCode = +$statusCode
    }
  }
  finally {
    if($response -is [IDisposable]){
      # Dispose of the response stream (otherwise we'll be blocking the tcp socket until it times out)
      $response.Dispose()
    }
  }
}

* + перед $statusCode обеспечивает преобразование в числовой код ответа c (ie 301) вместо его имени (MovedPermanently)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...