2009-12-25 28 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

相关问题