测试 WebClient API 调用

Test WebClient API call

我有以下 PowerShell 脚本可以进行 API Rest GET 调用。

$FullURL = "http://test.net/config/server/$($env:COMPUTERNAME)?format=test"
$API = New-Object System.Net.WebClient
$APIData = $API.DownloadString($FullURL)
Set-Content -Value $APIdata -Path $APIDataFile -Force

调用取决于 URI 中的本地主机名。它获取数据并导出到文本文件作为备份。问题 - API 主机可能关闭或主机没有可用信息,这将导致脚本中出现各种错误(这是脚本的一小部分,因为它将数据添加到 XML文件)。

如何向脚本添加逻辑以首先测试 API 调用,如果成功则继续进行 API 调用?

它必须适用于 PowerShell 2.0,因为 windows 2003 主机。 API 如果没有数据,则会给出错误 404 代码。

您需要使用 try/catch 块。下载不成功时,WebClient 应引发异常。尝试类似的东西:

$FullURL = "http://test.net/config/server/$($env:COMPUTERNAME)?format=test"
try {
    $API = New-Object System.Net.WebClient
    $APIData = $API.DownloadString($FullURL)
    Set-Content -Value $APIdata -Path $APIDataFile -Force
}
catch [Net.WebException] {
    # Do whatever you want if an exception is raised    
}