我正在尝试在RightScale的登录API中使用WCF工具包,这似乎相当容易使用。
编辑--这是我在使用Powershell使用API时写的一个博客条目。
编辑-为.NET API - NRightAPI创建了一个通用的NRightAPI包装器。
它就像使用卷发时看起来的一样简单。为了获得登录cookie,我需要做的就是:
curl -v -c rightcookie -u用户名:密码"version=1.0“
我收到以下曲奇:
HTTP/1.1 204无内容日期:2009年12月25日星期五12:29:24 GMT服务器: Mongrel 1.1.3状态:204NoContentX-Runtime: 0.06121 内容-类型: text/html;charset=utf-8 内容长度:0 缓存-控制:无缓存 为域_session_id="488a8d9493579b9473fbcfb94b3a7b8e5e3“添加cookie my.rightscale.com,路径/,过期0 Set-Cookie:_session_id=488a8d9493579b9473fbcfb94b3a7b8e5e3;path=/;secure : Accept-Encoding
但是,当我使用以下C#代码时:
HttpClient http = new HttpClient("version=1.0"); http.TransportSettings.UseDefaultCredentials = false; http.TransportSettings.MaximumAutomaticRedirections = 0; http.TransportSettings.Credentials =新NetworkCredential(“用户名”、“密码”); Console.WriteLine(http.Get().Content.ReadAsString());
我得到的不是HTTP 204,而是重定向:
你是href="redirected">https://my.rightscale.com/dashboard">redirected“
如何让WCF工具包与RighScale API一起工作?
发布于 2009-12-26 13:50:33
我需要在我的请求中添加一个“授权:基本”头。
除了我发布的初始代码之外:
HttpClient http = new HttpClient("version=1.0"); http.TransportSettings.UseDefaultCredentials = false; http.TransportSettings.MaximumAutomaticRedirections = 0; http.TransportSettings.Credentials =新NetworkCredential(“用户名”、“密码”);
我需要添加授权头以及带有用户名/密码的REST请求,如下所示:
Encoding.ASCII.GetBytes(string.Concat("username",= byte[] ":",“密码”); 字符串base64 =Convert.ToBase64String(创作字节); 字符串授权=string.Concat(“授权:基本",base64); Http.DefaultHeaders.Add(授权);
然后当我提出请求时:
Console.WriteLine(http.Get().Content.ReadAsString());
我收到了HTTP 204和我正在寻找的会话cookie。我能说什么呢,费德勒太棒了:)!
https://stackoverflow.com/questions/1961132
复制相似问题