在 powershell 中调用 Rest API 并等待响应
Invoke Rest APIs in powershell and await for the response
我是 PowerShell 的新手。我正在 运行 在一个 powershell 脚本中使用 Invoke-RestMethod
调用多个 rest API,在第二个 rest api 调用 returns 200,但它在需要时失败去做。看起来它失败了,因为第一个 API 端点尚未完成工作。
因为当我 运行 第二个 api 在单独的脚本中分开时,它 运行 没问题。 powershell invoke-rest方法函数中是否有异步和等待
当前代码
try {
#First Rest API It works fine
Invoke-RestMethod -Uri $uri -Method Post -Headers $headers -Body $body
}
catch {
Write-Host "Failed"
}
try {
#Second Rest API This returns 200 but does not do the work and if I run this API in a separate script
#It runs fine in a separate script
Invoke-RestMethod -Uri $uri -Method Post -Headers $headers -Body $body
}
catch {
Write-Host "Failed"
}
只是想看看能不能等待第一个休息方法
就像 Mathias 在他们的评论 Invoke-RestMethod
中所说的那样 return 只有当它完成它正在做的事情时 API。
如果您正在使用的 API 有一个 GET 方法,可以让您获得相关 POST 的状态,您可以这样做。
Invoke-RestMethod -Uri $uri -Method Post -Headers $headers -Body $body
do
{
# Let's assume it returns a string: "OK"
$status = Invoke-RestMethod -Uri $uri -Method Get -Headers $headers
}
while($status -ne "OK")
我是 PowerShell 的新手。我正在 运行 在一个 powershell 脚本中使用 Invoke-RestMethod
调用多个 rest API,在第二个 rest api 调用 returns 200,但它在需要时失败去做。看起来它失败了,因为第一个 API 端点尚未完成工作。
因为当我 运行 第二个 api 在单独的脚本中分开时,它 运行 没问题。 powershell invoke-rest方法函数中是否有异步和等待
当前代码
try {
#First Rest API It works fine
Invoke-RestMethod -Uri $uri -Method Post -Headers $headers -Body $body
}
catch {
Write-Host "Failed"
}
try {
#Second Rest API This returns 200 but does not do the work and if I run this API in a separate script
#It runs fine in a separate script
Invoke-RestMethod -Uri $uri -Method Post -Headers $headers -Body $body
}
catch {
Write-Host "Failed"
}
只是想看看能不能等待第一个休息方法
就像 Mathias 在他们的评论 Invoke-RestMethod
中所说的那样 return 只有当它完成它正在做的事情时 API。
如果您正在使用的 API 有一个 GET 方法,可以让您获得相关 POST 的状态,您可以这样做。
Invoke-RestMethod -Uri $uri -Method Post -Headers $headers -Body $body
do
{
# Let's assume it returns a string: "OK"
$status = Invoke-RestMethod -Uri $uri -Method Get -Headers $headers
}
while($status -ne "OK")