備忘録

備忘録

.NET Core HttpClientでproxyを利用する

Ⅰ. はじめに

.NET CoreではWebProxyクラスは存在しません。
代わりにIWebProxyを継承して自分でクラスを作る必要があります。

※2017/05/30 追記
.NET Core 2.0 でWebProxyクラスが追加されました。

Ⅱ. サンプル

class MyWebProxy : IWebProxy
{
  public ICredentials Credentials { get; set; }
  public Uri GetProxy(Uri destination) => new Uri("http://127.0.0.1:3128");
  public bool IsBypassed(Uri host) => false;
}
var handler = new HttpClientHandler();
handler.Proxy = new MyWebProxy();
handler.UseProxy = true;

// 証明書を全て信頼する
// handler.ServerCertificateCustomValidationCallback = delegate { return true; };

var client = new HttpClient(handler);

その他

ServerCertificateCustomValidationCallback について

このプロパティを変更すると
Linux / Unix環境で OpenSSL 関係のエラーが出る場合があります。