2009-12-25 72 views
4

我正在嘗試使用WCF Rest Starter Kit和RightScale's Login API,這看起來相當簡單。與RightScale API一起使用HttpClient

編輯 - 這裏是博客entry我寫過關於使用Powershell來使用API​​。

編輯 - 創建一個通用的.NET包裝的API的RightScale - NRightAPI

這是因爲它同時使用curl看起來完全一樣簡單。爲了讓我獲得登錄cookie所有我需要做的是:

捲曲-v -c rightcookie -u用戶名:密碼 「https://my.rightscale.com/api/acct/accountid/login?api_version=1.0

我收到以下的cookie:

HTTP/1.1 204無內容日期:週五,25
2009年十二時29分24秒格林尼治標準時間服務器12月:雜種 1.1.3狀態:204無內容X-運行時間:0.06121
內容類型: text/html;字符集= UTF-8
的Content-Length:0
緩存控制: 無緩存
增補餅乾 _session_id = 「488a8d9493579b9473fbcfb94b3a7b8e5e3」 域my.rightscale.com,路徑/, 到期0
的Set-Cookie: _session_id = 488a8d9493579b9473fbcfb94b3a7b8e5e3; path = /;安全有所不同:接受編碼

然而,當我使用下面的C#代碼:

HttpClient的HTTP =新 的HttpClient( 「https://my.rightscale.com/api/accountid/login?api_version=1.0」);
http.TransportSettings.UseDefaultCredentials = false;
http.TransportSettings.MaximumAutomaticRedirections = 0;
http.TransportSettings.Credentials = new NetworkCredential(「username」, 「password」);
Console.WriteLine(http.Get()。Content.ReadAsString());

而不是一個HTTP 204的,我得到一個重定向:

您正在<一個> HREF = 「https://my.rightscale.com/dashboard」>重定向<一>

如何獲得WCF REST入門工具包與RighScale API一起工作?

回答

6

我需要爲我的請求添加一個「授權:基本」標題。

在附加到初始代碼我曾貼:

HttpClient的HTTP =新的HttpClient( 「https://my.rightscale.com/api/acct/accountid/login?api_version=1.0」);
http.TransportSettings.UseDefaultCredentials = false;
http.TransportSettings.MaximumAutomaticRedirections = 0;
http.TransportSettings.Credentials = new NetworkCredential(「username」,「password」);

我需要與該用戶名/密碼的REST請求一起添加授權報頭如下:

字節[] authbytes = Encoding.ASCII.GetBytes(string.Concat(」用戶名密碼」));
string base64 = Convert.ToBase64String(authbytes);
string authorization = string.Concat(「Authorization:Basic」,base64);
http.DefaultHeaders.Add(authorization);

,然後當我提出的要求:

Console.WriteLine(http.Get()Content.ReadAsString());

我收到了HTTP 204以及我正在尋找的會話cookie。我能說什麼,Fiddler真棒:)!

+3

這是一個快捷方式http.DefaultHeaders.Authorization = Credential.CreateBasic(「user」,「password」); – 2009-12-26 22:24:53

+0

非常感謝Darrel,這非常有用。如果這是一個單獨的答案,我可以投票贊成。 – 2009-12-27 09:35:11

+0

沒問題。我在寫作上Microsoft.Http庫幾個職位的過程。你可能會發現一些其他有用的東西。 http://www.bizcoder.com/index.php/2009/12/08/why-the-microsoft-http-library-is-awesome/ – 2009-12-27 14:54:03

相關問題