2017-08-09 21 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