HttpLib(C# .NET Framework)簡単な紹介
1. ライブラリ概要
HttpLib(作者 James Thorne)は Apache 2.0 ライセンス に基づいた .NET 向けHTTPリクエスト補助ライブラリです。非同期ネットワーク処理を簡素化し、ファイルアップロードやWebページのダウンロードに対応、メソッドチェーン形式の記述が可能です。
注意:C++の同名ライブラリ
httplib、com.daniyarkaliyev.httplibと混同しないでください。インストールするのは HttpLib の方です。
パッケージをインストールしていないと、コード上でHttpが見つからなくなります。

2. インストール手順
- ソリューションエクスプローラーでプロジェクトを右クリック → NuGetパッケージの管理
- [参照]タブに切り替え、
HttpLibで検索 - 作成者が
James Thorne (@j6mes)のパッケージを選択しインストール(バージョン v2.0.16.94) - 出力ウィンドウにインストール完了と表示されるのを待つ

3. HttpLib の読み込み
1. 名前空間の参照漏れ
コードの一番先頭に記述してください:
using HttpLib;
この1行がないと、Http.Get() に赤い波線エラーが表示されます。
NuGetからインストールすると通常は自動で参照が追加されるため、手動追記は不要な場合が多いです。
2. サンプルコード
using System;
using HttpLib; // 必須の名前空間
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Http.Get("https://archive.codeplex.com/?p=httplib")
.OnSuccess(result =>
{
Console.Write(result);
})
.Go();
Console.ReadKey();
}
}
}Code language: JavaScript (javascript)
Webスクレイピングを拒否しているサイトではエラーが発生するほか、接続先サイト自体が閉鎖されている可能性もあります。
An unhandled exception of type “System.Net.WebException” occurred in JumpKick.HttpLib.dll
上記の例外が出た場合はブラウザでURLを開き接続可否を確認し、アクセスできなければ別のドメインに差し替えてください。
4. 構文解説
Http.Get("url") // GETリクエストを作成
.OnSuccess(result => {}) // 成功時コールバック、resultはレスポンステキスト
.Go(); // 非同期リクエストを実行Code language: JavaScript (javascript)
.Go():非同期通信を開始。メインスレッドをブロックしません- 応用:
.OnError()でネットワーク例外を捕捉可能
Http.Get("https://example.com")
.OnSuccess(res=>Console.WriteLine(res))
.OnError(ex=>Console.WriteLine("リクエスト失敗:"+ex.Message))
.Go();Code language: JavaScript (javascript)
サンプルに記載のテストURLは既に無効で実行すると失敗します。代替として
https://httpbin.org/htmlを使用してください。
6. 完全なサンプル
using System;
using HttpLib;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// 有効なテストURLを使用
Http.Get("https://httpbin.org/html")
.OnSuccess(result =>
{
Console.WriteLine("リクエスト成功:");
Console.Write(result);
})
.OnError(err =>
{
Console.WriteLine("リクエスト例外:" + err.Message);
})
.Go();
Console.WriteLine("非同期リクエスト送信完了。何かキーを押すと終了します");
Console.ReadKey();
}
}
}Code language: JavaScript (javascript)
using HttpLib; を記述しても赤いエラーが消えない場合、NuGetキャッシュのクリアと再インストールの手順を案内できます。
補足
httpbin.org はPythonの requests ライブラリ作者が開発したオープンソースの無料HTTPテストサービスで、HTTPリクエストのデバッグ用に使われます。
/html は同サービスが提供するAPIパスの一つです。
実行結果
リンクを開くと簡易なHTMLコンテンツが返ってきます:
紹介