【问题标题】:Making Powershell retry upload to Pushover if it failed如果失败,使 Powershell 重试上传到 Pushover
【发布时间】:2017-08-09 21:29:12
【问题描述】:

我想通过 Powershell v2.0 向 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 重试上传。我怎样才能做到这一点?我什至不知道如何单独获得响应。

有人可以给我一段工作代码吗?

【问题讨论】:

  • 您想重试多少次发送请求?
  • 可能 5 次...每次间隔 10 秒?

标签: powershell upload


【解决方案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

【讨论】:

  • 对不起,我还是不明白。事实上,我再也不需要 PowerShell 知识了。如果您给我一段工作代码,我将不胜感激,我只需将其复制并粘贴到代码的末尾即可。那可能吗? 大眼睛
猜你喜欢
  • 1970-01-01
  • 2015-09-12
  • 2014-04-21
  • 2013-12-25
  • 2018-09-08
  • 1970-01-01
  • 2020-12-15
  • 1970-01-01
  • 2021-01-21
相关资源
最近更新 更多