在PowerShell 使用 http request

現今 powershell 無所不能,即便是做 http GET/POST 也不是件難事

今天要做的事就是將 powershell 這項功能整合至 jenkins 裡

並回傳出成功或失敗的建置回傳碼

有一項服務需要在佈署完後需要用 http get 喚醒,以往都是佈署後需要有人去手動啟動

當下想法是使用 powershell 直接呼叫,將預期的 http status code 轉訪成 exit code 輸出即可

Jenkins 建置回傳碼的認定可以參考之前的資料 Jenkins 執行 Windwos 批次指令時顯示失敗

status code = 200 ok => exit 0, other(400 bad request or 404 not found) exit 1

$exitCode = 1
try
{
    $targetUrl = $args[0]
    $Response = Invoke-WebRequest -URI $targetUrl 
    $StatusCode = $Response.StatusCode
    $exitCode = 0
}
catch
{
    $StatusCode = 400
    $exitCode = 1
}

$StatusCode
exit $exitCode

不過 jenkins 也是有人做了相當不錯的套件 Http Request plug-in 的套件

GET/POST 都有,基本的 header 設置與 body 也有

甚至也有支援 File upload  的方式,甚至連 Response 也可以針對 response http status code 區間做檢查

或是針對 response content 做吻合性檢查