通过http的基本身份验证但是,在我的HttpWebRequest中使用Header甚至Credentials,我仍然得到Unauthorizedexception[401]。字符串urlAddress=URL;string用户名="我的用户";字符串密码="我的密码";HttpWebRequest请求=(HttpWebRequest)WebRequest.Create(urlAddress);if(UserName!=string.Empty){stringencoded=System.Convert.ToBase64String(System.Text.Encoding.GetEncoding("ISO-8859-1").GetBytes(UserName+":"+Password));request.Headers.Add("Authorization","Basic"+encoded);System.Net.CredentialCachecredentialCache=newSystem.Net.CredentialCache();credentialCache.Add(newSystem.Uri(urlAddress),"Basic",newSystem.Net.NetworkCredential(UserName,Password));request.Credentials=credentialCache;}HttpWebResponse响应=(HttpWebResponse)request.GetResponse();//<==ThrowsException401FiddlerAuth结果没有Proxy-Authenticate标头。WWW-AuthenticateHeaderpresent:Basicrealm="example"如消息所述:没有Proxy-Authenticateheader。然后,解决方法:...stringurlAddress="http://www.google.com";字符串用户名="user01";字符串密码=“puser01”;stringproxyServer="127.0.0.1";int代理端口=8081;HttpWebRequest请求=(HttpWebRequest)WebRequest.Create(urlAddress);if(userName!=string.Empty){request.Proxy=newWebProxy(proxyServer,proxyPort){UseDefaultCredentials=false,Credentials=newNetworkCredential(userName,password)};stringbasicAuthBase64=Convert.ToBase64String(Encoding.GetEncoding("ISO-8859-1").GetBytes(string.Format("{0}:{1}",userName,password)));request.Headers.Add("代理授权",string.Format("基本{0}",basicAuthBase64));}使用(HttpWebResponseresponse=(HttpWebResponse)request.GetResponse()){varstream=response.GetResponseStream();if(stream!=null){//--使用(varreader=newStreamReader(stream)){Console.WriteLine(reader.ReadToEnd());打印流内容到控制台}}}...我希望它有帮助。以上就是C#学习教程:通过http发送基本身份验证分享的所有内容。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权请点击右侧联系管理员删除。如需转载请注明出处:
