はじめに
.Netではhttpアクセスクラスがたくさんあるが、HttpClientクラスが推奨されている。
しかし、HttpClientクラスでDigest認証を扱うサンプルがなかなか見つからなかった。
(HttpWebResponseだとDigest認証サンプルが多いが、筆者環境では不具合が出た。)
実行ソース
参考
https://teratail.com/questions/296671
VB参考元ソース
'CredentialCacheの作成
Dim cache As New System.Net.CredentialCache()
'Digest認証の情報を追加
cache.Add(New Uri(url), "Digest", New System.Net.NetworkCredential("user", "password"))
Dim myClientHandler = New HttpClientHandler()
myClientHandler.Credentials = cache
C#対応後ソース
private HttpClient GetDigestClient()
{
//'CredentialCacheの作成
var cache = new System.Net.CredentialCache();
//'Digest認証の情報を追加
cache.Add(new Uri("URL"), "Digest", new System.Net.NetworkCredential("ID", "PW"));
var myClientHandler = new HttpClientHandler();
myClientHandler.Credentials = cache;
var client = new HttpClient(myClientHandler);
client.Timeout = new TimeSpan(0, 0, 0, 0, 5000);
return client;
}