|
無聊想調用下嘀咕的api的時候,發現需要HTTP Basic Authentication,就看了下。
什么是HTTP Basic Authentication?直接看http://en.wikipedia.org/wiki/Basic_authentication_scheme吧。
在你訪問一個需要HTTP Basic Authentication的URL的時候,如果你沒有提供用戶名和密碼,服務器就會返回401,如果你直接在瀏覽器中打開,瀏覽器會提示你輸入用戶名和密碼(google瀏覽器不會,bug?)。你可以嘗試點擊這個url看看效果:http://api.minicloud.com.cn/statuses/friends_timeline.xml
要在發送請求的時候添加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();
it知識庫:訪問需要HTTP Basic Authentication認證的資源的各種語言的實現,轉載需保留來源!
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。