我正在尝试读取一个需要基本身份验证的页面的源代码。然而,即使在我的HttpWebRequest中使用标题和凭据,我仍然收到一个未经授权的异常[401]。
string urlAddress = URL;
string UserName = "MyUser";
string Password = "MyPassword";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(urlAddress);
if (UserName != string.Empty)
{
string encoded = System.Convert.ToBase64String(System.Text.Encoding.GetEncoding("ISO-8859-1").GetBytes(UserName + ":" + Password));
request.Headers.Add("Authorization", "Basic " + encoded);
System.Net.CredentialCache credentialCache = new System.Net.CredentialCache();
credentialCache.Add(
new System.Uri(urlAddress), "Basic", new System.Net.NetworkCredential(UserName, Password)
);
request.Credentials = credentialCache;
}
HttpWebResponse response = (HttpWebResponse)request.GetResponse(); //<== Throws Exception 401
Fiddler身份验证结果
未出现Proxy-Authenticate标头。
出现了WWW-Authenticate标头:基本领域="示例"
HttpClient
;) - Matías Fidemraizer