.NET HttpClient の SOCKS プロキシ: 対応する URI スキーム
古いサードパーティ製のレシピが今も必要だと決めつけず、互換性のある .NET HTTP ハンドラーが文書化している SOCKS プロキシ URI スキームを使用してください。
古い回答が追加の SOCKS ハンドラーを勧めるのは、より古い .NET ネットワーク スタックを対象にしているためです。現代のサポートされている .NET HTTP スタックは、文書化された SOCKS プロキシ URI スキームを使用できます。
var handler = new HttpClientHandler
{
Proxy = new WebProxy("socks5://203.0.113.10:1080"),
UseProxy = true
};
using var client = new HttpClient(handler);エンドポイントはあくまで例示です。SOCKS5 プロキシ一覧は、この socks5 WebProxy URI の公開候補を提供します。実際のハンドラーが対応するバージョンを使用してください。この例を古い .NET Framework プロセスに適用する前に、ターゲット フレームワーク、ランタイム、プラットフォーム、およびアプリケーションが実際に使用するハンドラーを確認してください。
Microsoft の現在のプロキシ ドキュメントには socks4、socks4a、socks5 が記載されています。これらの名前はプロトコルの動作を表します。ポート番号だけでは SOCKS のバージョンを選ばず、curl の socks5h という表記はすべてのクライアントが受け入れる汎用の URI スキームではありません。
認証が必要な SOCKS5 サービスでは、ハンドラーが対応するインターフェイスに従って資格情報を構成してください。SOCKS4 と SOCKS4a は同じパスワード認証メカニズムを提供しません。
宛先 URL は変わりません。HTTPS リクエストはプロキシ経路を通じて宛先の TLS を確立し検証します。SOCKS を追加することは、その検証を無効にする理由にはなりません。