Powershellで非同期通信をする方法

PowerShellでは、非同期通信を実現するために、 System.Net.Http.HttpClient クラスを使用することができます。 HttpClient クラスは、HTTPリクエストを送信する機能を提供するため、Web APIに対して非同期で通信を行うことができます。

以下は、非同期通信を行うPowerShellスクリプトの例です。

Add-Type -AssemblyName System.Net.Http

# HttpClientオブジェクトの作成
$httpClient = New-Object System.Net.Http.HttpClient

# 非同期で通信するためのタスクの作成
$task = $httpClient.GetAsync("https://example.com")

# タスクが完了するまで待機する
while (-not $task.IsCompleted) {
    Start-Sleep -Milliseconds 100
}

# レスポンスの取得
$response = $task.Result

# レスポンスボディの表示
$response.Content.ReadAsStringAsync().Result

この例では、 HttpClient クラスの GetAsync メソッドを使用して、Web APIにHTTP GETリクエストを送信しています。 GetAsync メソッドは、HTTPリクエストを非同期で送信し、 Task<System.Net.Http.HttpResponseMessage> オブジェクトを返します。

Task オブジェクトが完了するまで、 while ループで待機します。タスクが完了すると、 Result プロパティを使用してレスポンスを取得し、レスポンスボディを表示します。