2013-10-07 110 views
0

我收到了Asana對我的請求的401響應。Asana API密鑰基本認證401

var url = "https://app.asana.com/api/1.0/users/me"; 
byte[] encodedByte = System.Text.ASCIIEncoding.ASCII.GetBytes(APIKey); 
APIKey = Convert.ToBase64String(encodedByte); 
WebRequest wrGETURL; 
wrGETURL = WebRequest.Create(url); 
wrGETURL.Headers.Add("Authorization: Basic " + APIKey); 
string result; 
using (StreamReader reader = new StreamReader(wrGETURL.GetResponse().GetResponseStream())) 
{ 
    result = reader.ReadToEnd(); 
} 
return result; 

回答

1

方式HTTP基本身份驗證的作品,你編碼的用戶名和密碼一起爲base64,用冒號隔開。在Asana API中,密鑰是用戶名,並且沒有密碼。

從文檔在https://asana.com/developers/documentation/getting-started/authentication#sts=API%20Keys

注意:大多數工具和庫,允許你指定一個用戶名和密碼會爲您處理頭的正確的編碼。但是,如果需要手動設置授權標頭,則通過向API密鑰添加冒號(:),然後使用base64編碼該字符串來構造標頭值。如果您需要更多詳細信息,您可以閱讀有關基本認證的更多信

所以,你應該做的:

byte[] encodedByte = System.Text.ASCIIEncoding.ASCII.GetBytes(APIKey + ":")

相關問題