2016-05-17 10 views
0

次のPowerShellスクリプトを使用して、API Rest GET呼び出しを行います。Test WebClient API呼び出し

$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コールをテストするロジックをスクリプトに追加するにはどうすればよいですか。

Windows 2003ホストのため、PowerShell 2.0で動作する必要があります。 APIは、データがない場合はエラー404コードを返します。

答えて

2

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  
} 
+0

ありがとうございました。次のエラーが表示されます - [Webexception]タイプが見つかりません:このタイプのアセンブリがロードされていることを確認してください。テストするために存在しないホスト名に変更しました。任意のアイデア –

+0

編集を見て、重要な 'Net.'を逃した – arco444

+0

ありがとう、ありがとう、別のstackoverflowの質問でもNet.webexceptionが見つかりました。完璧に動作します。 [net.webexception]は何をしていますか?私の学習のためだけに。ありがとう –

関連する問題