2017-08-09 19 views
0

我想通過Powershell v2.0向Pushover的服務器上傳通知。如果發生故障,使Powershell重試上傳到Pushover

我得到這個(工作正常):

param ($token, $message, $title, $url, $url_title, $priority, $html, $timestamp) 
$parameters = New-Object System.Collections.Specialized.NameValueCollection 
$parameters.Add("token", "$token") 
$parameters.Add("user", "$user") 
$parameters.Add("message", "$message") 
$parameters.Add("title", "$title") 
$parameters.Add("url", "$url") 
$parameters.Add("url_title", "$url_title") 
$parameters.Add("priority", "$priority") 
$parameters.Add("html", "$html") 
$parameters.Add("timestamp", "$timestamp") 
$client = New-Object System.Net.WebClient 
$client.UploadValues("https://api.pushover.net/1/messages.json", $parameters) 

不管是什麼原因,我得到不是HTTP之外的響應200(OK)狀態(見https://pushover.net/api#response或無響應我要當讓Powershell重試上傳。我怎樣才能做到這一點?我甚至不知道如何才能得到答覆。

有人能給我一個工作的代碼?

+0

多少次你要重新發送請求? – pizycki

+0

也許是5次......每次間隔10秒? – mifu

回答

1

捕捉這樣的迴應:

[byte]$responseArray = $client.UploadValues(uriString,myNameValueCollection);

閱讀這樣的字節數組響應:

$response = [System.Text.Encoding]::ASCII.GetString($responseArray)

然後,您可以編寫代碼的地址與HTTP響應值結果。

MSDN:https://msdn.microsoft.com/en-us/library/9w7b4fz7(v=vs.110).aspx