本文へスキップ
BecomeCoder

C#実践コース · 第2章 HTTP通信 · レッスン9

HttpClientでGET

ブラウザで完結

導入

「サーバーからデータを取ってくる」——最も基本のHTTP操作がGETです。C#ではHttpClientを使い、awaitで結果を待ちます(非同期がそのまま活きます)。

図解

sequenceDiagram
    participant C as C♯アプリ<br/>(HttpClient)
    participant S as サーバー<br/>(API)
    C->>S: GET /api/hello.json
    Note over S: データを準備
    S-->>C: 200 OK + 本文(JSON)
    Note over C: await していた処理が再開

サンプル

using var client = new HttpClient();

// このサイト内のモックAPIを実際に呼び出す(Web.Origin はサイトのURL)
string body = await client.GetStringAsync(Web.Origin + "/api/hello.json");
Console.WriteLine(body);
// {"message":"Hello, API!"}
  • HttpClientがHTTP通信の道具。GetStringAsync(URL)でGETし、本文を文字列で受け取る
  • awaitで通信の完了を待つ(GetStringAsyncTask<string>を返す)
  • using varで使い終わったら後片付けする

演習

using var client = new HttpClient();

// TODO: Web.Origin + "/api/greeting.json" にGETし、本文を出力してください
___
  • 期待される出力: {"greeting":"こんにちは、C#!"}
ヒント1を見る

サンプルのGetStringAsyncURLを差し替えます

ヒント2を見る

Console.WriteLine(await client.GetStringAsync(Web.Origin + "/api/greeting.json"));

まとめ

  • HttpClient + GetStringAsync + awaitでサーバーからデータを取得
  • GETは「取ってくる」操作
  • 通信は非同期で待つ

次回: 通信の成否を表す「ステータスコード」です。

実際に動かしてみよう

本文のサンプルや演習のコードは、コードブロック右上の「コピー」ボタンでコピーして、下のエディタに貼り付ければそのまま実行できます。

C# — ブラウザ内で実行

ブラウザ内でC#を動かす環境を読み込みます(初回のみ数秒)。
スクロールして表示された時点でも自動で読み込まれます。