在 Powershell 中的 Get rest message header 中发送一个数组
Send an array in Get rest message header in Powershell
我正尝试在休息消息 header 中向 Servicenow 发送一组数字,但我没有得到很好的回复。如果我将数字硬编码到 header 而不是使用数组变量,我会得到我正在寻找的信息,但我需要能够传递从上一步生成的数组。
在 header 中,您可以看到我试图发送 "ritm" header 的位置。如果我发送被注释掉的行,它将起作用,但列出数组变量的行不起作用。这是我拥有的:
$headers = @{
Authorization=("Basic {0}" -f $base64AuthInfo)
Accept = "application/json"
#ritm = "REQITEM0096138,REQITEM0096137" ## If I send this line it works
ritm = $reqitems
}
# Specify endpoint uri
$uri = "https://service-now.com/api/"
# Specify HTTP method
$method = "get"
# Send HTTP request
$response = Invoke-RestMethod -Headers $headers -Method $method -Uri $uri
$response.result | fl
数组到 [string]
的默认序列化是用空格分隔每个元素。如果您需要不同的分隔符,请使用 the -join
operator:
$headers = @{
ritm = $reqitems -join ','
}
Powershell 中的 REST headers 不会自动将嵌套的 objects 转换为正确的格式,因此您需要创建字符串而不是数组。
您的 ritm = $reqitems 可能是使用
创建的
$reqitems = 'blah', 'blah2'
这会创建一个 header 不喜欢的数组
如果你不想要一个数组,你可以这样做
$reqitems = 'blah1, blah2'
这会将您的值创建为字符串,这样效果会更好。
我正尝试在休息消息 header 中向 Servicenow 发送一组数字,但我没有得到很好的回复。如果我将数字硬编码到 header 而不是使用数组变量,我会得到我正在寻找的信息,但我需要能够传递从上一步生成的数组。
在 header 中,您可以看到我试图发送 "ritm" header 的位置。如果我发送被注释掉的行,它将起作用,但列出数组变量的行不起作用。这是我拥有的:
$headers = @{
Authorization=("Basic {0}" -f $base64AuthInfo)
Accept = "application/json"
#ritm = "REQITEM0096138,REQITEM0096137" ## If I send this line it works
ritm = $reqitems
}
# Specify endpoint uri
$uri = "https://service-now.com/api/"
# Specify HTTP method
$method = "get"
# Send HTTP request
$response = Invoke-RestMethod -Headers $headers -Method $method -Uri $uri
$response.result | fl
数组到 [string]
的默认序列化是用空格分隔每个元素。如果您需要不同的分隔符,请使用 the -join
operator:
$headers = @{
ritm = $reqitems -join ','
}
Powershell 中的 REST headers 不会自动将嵌套的 objects 转换为正确的格式,因此您需要创建字符串而不是数组。
您的 ritm = $reqitems 可能是使用
创建的$reqitems = 'blah', 'blah2'
这会创建一个 header 不喜欢的数组
如果你不想要一个数组,你可以这样做
$reqitems = 'blah1, blah2'
这会将您的值创建为字符串,这样效果会更好。