紹介

HttpLib(C# .NET Framework)簡単な紹介

1. ライブラリ概要

HttpLib(作者 James Thorne)は Apache 2.0 ライセンス に基づいた .NET 向けHTTPリクエスト補助ライブラリです。非同期ネットワーク処理を簡素化し、ファイルアップロードやWebページのダウンロードに対応、メソッドチェーン形式の記述が可能です。

注意:C++の同名ライブラリ httplibcom.daniyarkaliyev.httplib と混同しないでください。インストールするのは HttpLib の方です。

パッケージをインストールしていないと、コード上でHttpが見つからなくなります。

2. インストール手順

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

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コンテンツが返ってきます:

紹介

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です