古い回答が追加の 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 を追加することは、その検証を無効にする理由にはなりません。

関連記事