访问需要HTTP Basic Authentication认证的资源的C#实现

时间:2022-09-30 16:21:30

要在发送请求的时候添加HTTP Basic Authentication认证信息到请求中,有两种方法:

  • 一是在请求头中添加Authorization:
    Authorization: "Basic 用户名和密码的base64加密字符串"
  • 二是在url中添加用户名和密码:
    http://userName:password@api.minicloud.com.cn/statuses/friends_timeline.xml

下面来看下对于第一种在请求中添加Authorization头部的各种语言的实现代码。

先看.NET的吧:

string  username = " username " ;
string  password = " password " ;
// 注意这里的格式哦,为 "username:password"
string  usernamePassword  =  username  +   " : "   +  password;
CredentialCache mycache 
=   new  CredentialCache();
mycache.Add(
new  Uri(url),  " Basic " new  NetworkCredential(username, password));
myReq.Credentials 
=  mycache;
myReq.Headers.Add(
" Authorization " " Basic  "   +  Convert.ToBase64String( new  ASCIIEncoding().GetBytes(usernamePassword))); 

WebResponse wr 
=  myReq.GetResponse();
Stream receiveStream 
=  wr.GetResponseStream();
StreamReader reader 
=   new  StreamReader(receiveStream, Encoding.UTF8);
string  content  =  reader.ReadToEnd(); 

你当然也可以使用HttpWebRequest或者其他的类来发送请求。