**伙计们,我被告知:"在您的POST主体中,您不会将朋友作为数组传递,";实际的JSON:一旦我把这个JSON转换成powershell格式,我就计划调用一个get请求,如下所示。
{"friends":[{"friendId":"abc1234-456Yes-repeat"}],"wowMorefriends":{"morefriendsId":{"hmmmMoreFriendsId":"09876tyuhtre-repeated"}},"callMe":0,"param":{}}
Powershell代码:
$Data = @{
friends = @{"friendId" = "abc1234-456Yes-repeat"}
wowMorefriends = @(
@{
"morefriendsId" = @{"hmmmMoreFriendsId" = "09876tyuhtre-repeated"}
"callMe" = 0
"param" = {}
}
)
}
$JsData = $Data | ConvertTo-Json -Compress
$JsData
Invoke-WebRequest -Method Post -Uri "https://App1.Callingmyfriends.com/api/callactions/run" -Body $JsData -ContentType 'application/json' -WebSession $cookieSession -Headers $requestHeaders -UseBasicParsing
我做错什么了吗?
如果friends
应该是一个对象数组,那么您希望以在@()
中设置wowMoreFriends
的方式设置它。此外,您还需要将param设置为@{}
,而不是{}
,否则会出现问题,具体取决于您使用的Powershell版本。
$Data = @{
friends = @(
@{
"friendId" = "abc1234-456Yes-repeat"
}
)
wowMorefriends = @(
@{
"morefriendsId" = @{"hmmmMoreFriendsId" = "09876tyuhtre-repeated"}
"callMe" = 0
"param" = @{}
}
)
}
但除此之外,morefriendsId
已经超过了ConvertTo-Json
默认的最大深度。因此,您还需要通过-Depth
设置更大的深度,例如:
$JsData = $Data | ConvertTo-Json -Compress -Depth 4