尝试向 SEPM 提交 GET 请求时出现错误请求 API
Bad request when trying to submit a GET request to SEPM API
我正在尝试向 SEPM API 提交请求,特别是使用赛门铁克提供的 this section 文档,但任何时候我尝试 运行 我得到的查询(400) Bad request
错误,老实说,我没有看到请求中的畸形。这是我目前使用的代码:
#Report type: Hour, Day, Week or Month
$reportType = "Hour"
#Get system time
$startTime = Get-Date (Get-Date).AddHours(-1)
$endTime = Get-Date
#Convert time to Epoch
$startTimeEpoch = Get-Date ($startTime).ToUniversalTime() -UFormat %s
$endTimeEpoch = Get-Date ($endTime).ToUniversalTime() -UFormat %s
$header = @{
"Content-Type" = "application/json"
"Authorization"= "Bearer $authToken"
}
$response = Invoke-RestMethod `
-Uri "https://example:8446/sepm/api/v1/stats/client/malware/$reportType/$startTimeEpoch/to/$endTimeEpoch" `
-Method GET `
-Headers $header
Uri展开如下"https://example:8446/sepm/api/v1/stats/client/malware/Hour/1592937124.87678/to/1592940724.8778"
provided document 表示 {startTime}
和 {endTime}
都应该是 整数 (int64
) 在给定的语法模式中。不幸的是,自 1970 年 1 月 1 日 00:00:00 以来 -UFormat %s
returns 秒作为 double 值过去了。应用适当的转换,例如如下:
$reportType = "Hour"
#Get system time
$endTime = Get-Date
$startTime = $endTime.AddHours(-1)
#Convert time to Epoch
$startTimeEpoch = (Get-Date ($startTime).ToUniversalTime() -UFormat %s).
ToDouble([cultureinfo]::CurrentCulture) -as [int64]
$endTimeEpoch = (Get-Date ( $endTime).ToUniversalTime() -UFormat %s).
ToDouble([cultureinfo]::CurrentCulture) -as [int64]
请注意,考虑到以下两个表达式的计算结果为 true:
,您可以简化代码
$startTimeEpoch -eq $endTimeEpoch -3600
$startTimeEpoch +3600 -eq $endTimeEpoch
我正在尝试向 SEPM API 提交请求,特别是使用赛门铁克提供的 this section 文档,但任何时候我尝试 运行 我得到的查询(400) Bad request
错误,老实说,我没有看到请求中的畸形。这是我目前使用的代码:
#Report type: Hour, Day, Week or Month
$reportType = "Hour"
#Get system time
$startTime = Get-Date (Get-Date).AddHours(-1)
$endTime = Get-Date
#Convert time to Epoch
$startTimeEpoch = Get-Date ($startTime).ToUniversalTime() -UFormat %s
$endTimeEpoch = Get-Date ($endTime).ToUniversalTime() -UFormat %s
$header = @{
"Content-Type" = "application/json"
"Authorization"= "Bearer $authToken"
}
$response = Invoke-RestMethod `
-Uri "https://example:8446/sepm/api/v1/stats/client/malware/$reportType/$startTimeEpoch/to/$endTimeEpoch" `
-Method GET `
-Headers $header
Uri展开如下"https://example:8446/sepm/api/v1/stats/client/malware/Hour/1592937124.87678/to/1592940724.8778"
provided document 表示 {startTime}
和 {endTime}
都应该是 整数 (int64
) 在给定的语法模式中。不幸的是,自 1970 年 1 月 1 日 00:00:00 以来 -UFormat %s
returns 秒作为 double 值过去了。应用适当的转换,例如如下:
$reportType = "Hour"
#Get system time
$endTime = Get-Date
$startTime = $endTime.AddHours(-1)
#Convert time to Epoch
$startTimeEpoch = (Get-Date ($startTime).ToUniversalTime() -UFormat %s).
ToDouble([cultureinfo]::CurrentCulture) -as [int64]
$endTimeEpoch = (Get-Date ( $endTime).ToUniversalTime() -UFormat %s).
ToDouble([cultureinfo]::CurrentCulture) -as [int64]
请注意,考虑到以下两个表达式的计算结果为 true:
,您可以简化代码$startTimeEpoch -eq $endTimeEpoch -3600
$startTimeEpoch +3600 -eq $endTimeEpoch