![](/img/trans.png)
[英]how to change ReadWriteTimeout for powershell Invoke-WebRequest or Invoke-RestMethod?
[英]How To Correctly Use Jenkins PowerShell step to call Web API using Invoke-WebRequest or Invoke-RestMethod
我正在使用Jenkins在PowerShell命令步驟中調用Web ZDB974238714CAA8DE634A7CE1D08服務我正在使用Invoke-WebRequest調用該服務。
此服務調用必須在 Jenkins 中,因為只有在其他 Jenkins 作業成功完成時我才需要這樣做。
該服務可以運行幾個小時。 如果我沒有TimeoutSec參數,則該步驟會在 Web API 完成之前以超時完成。 如果我有一個較大的參數,比如36000,那么Web API 正常完成,但是這個步驟持續了10個小時。 其他參數與此問題無關。
我正在尋找一種在 Web API 完成后立即完成 Jenkins 步驟的好方法,而不是更早或更晚。
try
{
$url = "https://ourserver.com/modules/OurService"
$response = Invoke-WebRequest -Uri $url -UseDefaultCredentials -Method Get -TimeoutSec 36000 -UseBasicParsing
}
catch
{
$err=$_.Exception
Write-Host '-----------------------'
Write-Host $err
Write-Host '-----------------------'
exit -1
}
exit 0
我嘗試了不同的方法,我認為我更接近我現在想要的位置......
我決定用Invoke-RestMethod go
一個奇怪的問題仍然存在:當我的長時間運行的服務被調用並且該服務完成時,我陷入了困境,但異常沒有任何內容。 根據我的服務日志,我知道服務已成功完成。 所以,在這一點上,我認為它是成功的。
try
{
$url = "https://ourserver.com/modules/OurService"
$response = Invoke-RestMethod -Uri $url -UseDefaultCredentials -Method Get -TimeoutSec 18000
$response
Write-Host 'Exit with success'
exit 0
}
catch
{
if (($_.Exception) -and ($_.Exception.Response))
{
$respStream = $_.Exception.Response.GetResponseStream()
$reader = New-Object System.IO.StreamReader($respStream)
$reader.BaseStream.Position = 0
$responseBody = $reader.ReadToEnd() | ConvertFrom-Json
'------------------------------------------------------------------------------------------------------------------------'
'Error Message:'
$responseBody.Message
$_.Exception
'------------------------------------------------------------------------------------------------------------------------'
exit -1
}
else
{
'------------------------------------------------------------------------------------------------------------------------'
'Got to catch, but no exception (we should not have gotten to "catch" area, possible PowerShell bug)'
'------------------------------------------------------------------------------------------------------------------------'
exit 0
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.