Json 使用Powershell运行多个迭代API调用

Json 使用Powershell运行多个迭代API调用,json,powershell,Json,Powershell,我需要为1000个不同的URI运行1000个API调用。我试图一次运行1000个不同的URI,如下所示,但API限制为1000行。 有没有一种方法可以将此代码运行1000次,生成1000个单独的JSON文件,或者在一个JSON文件中运行,而无需使用powershell脚本单独运行URI $access_token ="dfdfgdfgf45h5676rdffghfghfbazbfgjvdrtwsffrgr" $LogPath ='C:\StackOVerflow' $URI = 'https:

我需要为1000个不同的URI运行1000个API调用。我试图一次运行1000个不同的URI,如下所示,但API限制为1000行。 有没有一种方法可以将此代码运行1000次,生成1000个单独的JSON文件,或者在一个JSON文件中运行,而无需使用powershell脚本单独运行URI

$access_token ="dfdfgdfgf45h5676rdffghfghfbazbfgjvdrtwsffrgr"
$LogPath ='C:\StackOVerflow'

$URI = 'https://api.web.ser/audits/a_80weqwepeopeoA'
       'https://api.web.ser/audits/a_B0980kdfl;skfd'
       'https://api.web.ser/audits/a_Csdfsdfsjlksdc'
       'https://api.web.ser/audits/a_Tlksdjfalkjdff'
       'https://api.web.ser/audits/a_Fldkfjlsfjdfdl'
       'https://api.web.ser/audits/a_Fsdfsdfsdfsd34'
       'https://api.web.ser/audits/a_G34gfgf4ffsdrf'
       'https://api.web.ser/audits/a_Haere34534fdgf'
       'https://api.web.ser/audits/a_Ifdl023lererew'
       'https://api.web.ser/audits/a_Afrererl45645w'

$headers = @{“authorization” = “Bearer $access_token”}

$result = Invoke-RestMethod -Uri $URI -Headers $headers |ConvertTo-Json| out-file "$LogPath\id_ExtractLogs$(((get-date).ToString("yyyyMMdd"))).json"


$result

不能将
uri
数组传递给
Invoke-RestMethod
cmdlet;它们必须被迭代

这里有一个可行的解决方案:

$uri = 'https://api.web.ser/audits'
$reportList = @(
    'a_80weqwepeopeoA'
    'a_B0980kdfl;skfd'
    # .. etc.
)

$token = 'secret'
$headers = @{ Headers = @{ Authorization = "Bearer $token" }}

$logPath = 'C:\StackOverflow'

foreach ($report in $reportList) {
    $stamp = Get-Date -Format FileDateTime
    Invoke-RestMethod -Uri "$uri/$report" -OutFile "$logPath\id_$stamp.json" @headers
}

使用
foreach()
循环一次遍历每一行,并在每次迭代中调用一个自定义函数来运行所需的操作,该操作使用可以使用的参数。如果你需要一个例子,我会发布一个作为答案的例子。调用webrequest可能会更好地帮助你!好多了,很好one@TheIncorrigible1. 我得到一个错误:“调用RestMethod:{“statusCode”:400,“错误”:“错误请求”,“消息”:“child\“audited\”失败,因为[\“audited\”只能包含字母数字和下划线字符]”,“验证”:{“source”:“params”,“keys”:[“audited”]}第15行字符:5+调用RestMethod-Uri“$Uri/$reportList”-OutFile“$logPath\id\。。。。“@Djbril这是你这边的问题。您在
uri
中的路径不正确。@不可更正。用json写出文件有一个问题,因为当我取出“$logPath='C:\StackOverflow”和“$stamp=Get Date-Format”FileDateTime和“-OutFile”$logPath\id_$stamp.json”时,我可以在终端中看到结果。@Djbril如果希望控制台和文件中包含内容,请使用
PassThru
参数。