カテゴリ: C# 更新日: 2026/08/25

C# APIリクエストでヘッダーを追加する方法!初心者向けHTTP通信入門

C#でAPIリクエストにヘッダ情報を追加する方法
C#でAPIリクエストにヘッダ情報を追加する方法

先生と生徒の会話形式で理解しよう

生徒

「C#を使ってWeb上のデータを受け取るAPI通信を学びたいのですが、ヘッダー情報の追加が難しそうで困っています。」

先生

「C#のHttpClientを使えば、APIリクエスト時にヘッダーを簡単に追加できますよ。」

生徒

「そもそもヘッダーって何のためにあるんですか?」

先生

「手紙の封筒に書かれた情報のようなものです。中身のデータだけでなく、誰が送ったかなどの補足情報を伝えるために必要な役割を果たします。」

1. APIリクエストとヘッダーの基礎知識

1. APIリクエストとヘッダーの基礎知識
1. APIリクエストとヘッダーの基礎知識

まず、Web開発におけるAPI通信とは何かを理解しましょう。APIとは、プログラム同士が情報をやり取りするための窓口のことです。Webサイトから天気情報を取得したり、最新のニュースを読み込んだりする機能は、このAPI通信によって実現されています。

通信を行う際、私たちはプログラムを通してサーバーに「リクエスト(要求)」を送ります。このとき、単にデータが欲しいと伝えるだけでなく、HTTPヘッダーという付加情報を添えることが一般的です。これは、荷物を送る際に送り主や品名を書く「送り状」に例えられます。このヘッダー情報がないと、サーバー側は誰からの要求か判断できず、アクセスを拒否することもあります。

2. C#で通信を行うHttpClientとは

2. C#で通信を行うHttpClientとは
2. C#で通信を行うHttpClientとは

C#でWeb通信を行うための最も標準的で強力なツールがHttpClientクラスです。これは、インターネット上のサーバーと会話するための道具箱のようなものです。パソコンを初めて触る方でも、この道具箱を使うことで、簡単に外部のWebサービスと連携するプログラムが作成できます。

HttpClientを使うには、まずクラスをインスタンス化する必要があります。インスタンス化とは、道具箱を新しく準備する作業だと考えてください。このHttpClientを使うことで、GETリクエストやPOSTリクエストといった、Webデータのやり取りをスムーズに行うことが可能です。


using System.Net.Http;

var client = new HttpClient();

3. ヘッダー情報を追加する具体的な手順

3. ヘッダー情報を追加する具体的な手順
3. ヘッダー情報を追加する具体的な手順

次に、実際にヘッダー情報を追加する方法を解説します。先ほど作成したHttpClientのオブジェクトには、DefaultRequestHeadersというプロパティが用意されています。ここに情報を追加することで、その後のリクエストすべてに特定のヘッダーを付与することができます。

例えば、APIの使用権限を示すための認証トークンや、データの形式を指定するContent-Typeなどを設定します。ヘッダーは「名前」と「値」のペアで構成されます。プログラムコードでは、Addメソッドを使ってこのペアを追加していきます。


using System.Net.Http;

var client = new HttpClient();
// ヘッダーに名前と値を追加する
client.DefaultRequestHeaders.Add("Authorization", "Bearer MySecretToken");

4. リクエストごとのヘッダー追加方法

4. リクエストごとのヘッダー追加方法
4. リクエストごとのヘッダー追加方法

先ほどの方法は「共通のヘッダー」を設定する場合でしたが、リクエストごとに個別のヘッダーを変えたい場合は、HttpRequestMessageという専用のメッセージクラスを使います。これにより、リクエストの送信直前に柔軟に設定を変更できます。

HttpRequestMessageを使うと、リクエストのメソッド(GETやPOSTなど)や宛先URL、そしてヘッダー情報を一つの箱にまとめてから送信することができます。少し手間は増えますが、API開発の現場では非常に重要となる、現場で役立つ実践的なスキルです。


using System.Net.Http;

var request = new HttpRequestMessage(HttpMethod.Get, "https://api.example.com/data");
request.Headers.Add("User-Agent", "MyCSharpApp");

var client = new HttpClient();
var response = await client.SendAsync(request);

5. 注意すべきヘッダー設定のルール

5. 注意すべきヘッダー設定のルール
5. 注意すべきヘッダー設定のルール

ヘッダーを追加する際には、いくつか注意点があります。すべてのヘッダーが自由に設定できるわけではなく、一部のヘッダー(Content-Lengthなど)はシステムが自動的に管理するため、手動で変更しようとするとエラーが発生することがあります。

また、ヘッダーに含める情報の機密性にも注意が必要です。パスワードや秘密鍵などの重要な情報は、暗号化されていない状態でヘッダーに含めるべきではありません。セキュリティを考慮し、必ずHTTPSという暗号化された通信プロトコル経由で送信するようにしましょう。

6. 通信結果を確認する方法

6. 通信結果を確認する方法
6. 通信結果を確認する方法

ヘッダーが無事に送信されたかどうかを確認するには、APIのレスポンス(応答)を解析します。サーバーから返ってきた結果には、ステータスコードという数字が含まれています。例えば「200 OK」であれば通信成功、「401 Unauthorized」であればヘッダーの認証情報が間違っているといった判断が可能です。

初心者のうちは、通信に成功したかどうかをコンソール画面に出力して確認する癖をつけるとよいでしょう。エラーが発生した場合は、送信したヘッダー情報が正しい形式になっているか、URLが間違っていないかを一つずつ確認していくことがデバッグの基本です。


var response = await client.GetAsync("https://api.example.com/data");
if (response.IsSuccessStatusCode)
{
    Console.WriteLine("通信成功!");
}
else
{
    Console.WriteLine("エラー発生:" + response.StatusCode);
}
カテゴリの一覧へ
新着記事
New1
C#
C#とは何か?初心者向けにできること・特徴・インストール手順までやさしく解説
New2
C#
C#のメソッドを引数に渡す方法!高階関数の基本を学ぼう
New3
Azure
Azure Front Door Analytics活用|リアルタイム監視とレポートで通信を分析
New4
COBOL
COBOLで数値比較とALPHABETIC・NUMERIC条件をやさしく解説!初心者でも安心ガイド
人気記事
No.1
Java&Spring記事人気No1
C#
C#のWPFとは?XAMLでGUI開発を基礎から完全解説!初心者向けの入門ガイド
No.2
Java&Spring記事人気No2
COBOL
COBOL教育における教材とリソース完全ガイド!初心者でもわかるプログラミング学習の選び方
No.3
Java&Spring記事人気No3
Azure
Azure SQL Database購入モデル比較!vCoreとDTUの違いと選び方を初心者向けに解説
No.4
Java&Spring記事人気No4
C#
C#のLINQでWhere句を使いこなす!初心者でもわかるデータ抽出とフィルタリング
No.5
Java&Spring記事人気No5
COBOL
COBOLのCOPY句の使い方を完全ガイド!初心者でもわかる共通部品の再利用方法
No.6
Java&Spring記事人気No6
COBOL
COBOLの数値データ型「PIC 9」の使い方と注意点をやさしく解説!
No.7
Java&Spring記事人気No7
C#
C#のLINQでFirstとFirstOrDefaultの違いと使い方を完全解説!初心者向けガイド
No.8
Java&Spring記事人気No8
C#
C#のforeachループを完全ガイド!初心者でもわかるコレクション操作の基本