備忘録

備忘録

C#でHttpClientにSOCKS Proxyを利用する方法

Ⅰ. はじめに

タイトルの通り「C#でHttpClientにSOCKS プロクシを利用する方法」です。
SocksSharp を利用します。
SocksSharp は SOCKS4/4a/5 に対応しています。(2017/08/26時点)

Ⅱ. やり方

1. NuGetから SocksSharp をインストールする
Install-Package SocksSharp
2. サンプルプログラム
using SocksSharp;
using SocksSharp.Proxy;
using System;
using System.Net.Http;

namespace HttpClientTest
{
  class Program
  {
    static void Main(string[] args)
    {
      var settings = new ProxySettings()
      {
        Host = "127.0.0.1",
        Port = 1080
      };

      var handler = new ProxyClientHandler<Socks5>(settings);
      var client = new HttpClient(handler);
      Console.WriteLine(client.GetStringAsync("https://api.ipify.org").Result);
    }
  }
}

Ⅲ. 実行結果

f:id:kagasu:20170826174528p:plain