如何将数据发送到网站服务



我正在尝试在PowerShell中构建一组应用程序服务器的健康检查系统。我有8个服务器每个运行一个不同的应用程序,该应用程序需要自己的特定服务运行。我希望该服务器运行一组基本的命令:

$RequiredServices = "Service1","Service2"
Get-Service -Name $RequiredServices | Select-Object name,status
Test-Connection -ComputerName $DomainController

我想将此信息发送到本地Web服务,例如SOAP或通过XML或HTML休息,因此我可以在网页上快速拍摄所有应用程序服务。我可以找出网页部分,但是我对将此数据发送到Web服务的最佳方法感到困惑?Invoke-WebRequest

您可以将测试结果传递给请求正文中的Web服务,这是调用Web服务的示例

身体可以代表您想要的任何数据结构,下面只是一个示例。

$Body = @{
    "TestName" = $TestName
    "Results" = @(
        @{
            "ServiceName" = $ServiceName
            "Status" = $Status
        }
    )
} | ConvertTo-Json
$contentType = "application/json"
Invoke-WebRequest -TimeoutSec $TimeoutSec `
                  -Method PUT `
                  -Uri $Uri `
                  -ContentType $contentType `
                  -UseBasicParsing `
                  -Body $Body 

注意:如果您多次调用REST API,则需要清理连接,因此您应该在呼叫上进行顶部和尾声:

$ServicePoint = [System.Net.ServicePointManager]::FindServicePoint($Uri)
# Make call here
$ServicePoint.CloseConnectionGroup("") | Out-Null

有关更多详细信息,请参见此处。

@clijsters指出了Invoke-restmethod是Indoke-Webrequest

的另一种选择

相关内容

  • 没有找到相关文章

最新更新