GoogleReader用户登陆验证C#具体实现
2011-02-21 10:46
603 查看
继前两篇文章
google reader api:/article/5631248.html
GoogleReader用户登陆验证原理:/article/5631249.html
相信大家对GoogleReader api已经有所认识,下面就讲下GoogleReader用户登陆验证C#具体实现
1.创建HttpWebRequest
2.使用HttpPost传递登陆参数
3.传递用户名和密码实现登陆
至此,google用户登陆验证完成了!我们可以根据googlereader提供的API打造一个属于自己的客户端RSS订阅器!
比如,我们要获得已阅读的20篇文章:可以用httpget的方法访问:http://www.google.com/reader/atom/user/[user ID]/state/com.google/read
[user ID]可以使用“-”来代表当前登陆的用户,返回的记录是XML数据格式:
google reader api:/article/5631248.html
GoogleReader用户登陆验证原理:/article/5631249.html
相信大家对GoogleReader api已经有所认识,下面就讲下GoogleReader用户登陆验证C#具体实现
1.创建HttpWebRequest
private HttpWebRequest CreateRequest(string url) { HttpWebRequest webRequest = WebRequest.Create(url) as HttpWebRequest; IWebProxy defaultParoxy = HttpWebRequest.GetSystemWebProxy(); webRequest.Proxy = defaultParoxy; webRequest.UserAgent = "GoogleReader for Windows/"+Assembly.GetExecutingAssembly().GetName().Version; webRequest.CookieContainer = _CookieContainer; webRequest.ServicePoint.Expect100Continue = false; webRequest.Timeout = 20000; if (_isLoginIn) webRequest.Headers.Add("Authorization", "GoogleLogin auth=" + _LoginAuth[2].Split('=')[1]); return webRequest; }
2.使用HttpPost传递登陆参数
private string PostGoogleLogin(HttpWebRequest webRequest,string queryString) { string ResponseString = string.Empty; webRequest.ContentType = "application/x-www-form-urlencoded"; webRequest.Method = "POST"; byte[] QueryData = Encoding.UTF8.GetBytes(queryString); webRequest.ContentLength = QueryData.Length; try { using (Stream stream = webRequest.GetRequestStream()) { stream.Write(QueryData, 0, QueryData.Length); stream.Close(); ResponseString = GetResponseString(webRequest); } } catch (Exception ex) { LoginError += ex.ToString() + "\r\n"; } return ResponseString; }
3.传递用户名和密码实现登陆
public void GoogleLogin(string email,string password) { string SID_ID = string.Empty; string responseData = string.Empty; List<Parameter> queryParams = new List<Parameter>(); queryParams.Add(new Parameter("service", "reader")); queryParams.Add(new Parameter("Email", Uri.EscapeDataString(email))); queryParams.Add(new Parameter("Passwd", Uri.EscapeDataString(password))); queryParams.Add(new Parameter("source", "Mobile Newspaper/0.1")); queryParams.Add(new Parameter("continue", "http://www.google.com")); HttpWebRequest webRequest=CreateRequest("https://www.google.com/accounts/ClientLogin"); responseData = PostGoogleLogin(webRequest, HttpUtil.GetQueryParamters(queryParams)); string pattern="SID=(.*)"; Regex reg = new Regex(pattern, RegexOptions.IgnoreCase); if (reg.IsMatch(responseData)) { _isLoginIn = true; _LoginAuth = responseData.Split('\n'); SID_ID = reg.Match(responseData).Groups[1].Value; _CookieContainer.Add(new Cookie("SID",SID_ID,"/",".google.com")); } }
至此,google用户登陆验证完成了!我们可以根据googlereader提供的API打造一个属于自己的客户端RSS订阅器!
比如,我们要获得已阅读的20篇文章:可以用httpget的方法访问:http://www.google.com/reader/atom/user/[user ID]/state/com.google/read
[user ID]可以使用“-”来代表当前登陆的用户,返回的记录是XML数据格式:
相关文章推荐
- Django---用户注册和登陆验证(3)--具体实现--使用默认的
- mvc C# JavaScript LigerUI oracle实现用户的注册、登陆验证、登陆
- AJAX+JAVA用户登陆注册验证的实现代码
- objective-c 实现用户验证,登陆 Xcode iOS
- c# 实现网页上用户自动登陆|asp.net 模拟网站登录
- 验证码识别实践2:自己动手C#实现,对CSDN资源上传验证码识别率100%,久游网登陆90%
- winform里c#验证用户正确后 怎么打开新窗口时关闭登陆窗口
- 三层架构下实现用户登陆C#
- 实现session登陆时间的验证,验证用户登录页面的一个监听器
- Spring从菜鸟到高手(四)(上)使用JdbcTemplate类实现用户登陆验证、批量更新
- Struts过滤器实现用户登陆验证
- Spring从菜鸟到高手(四)(上)使用JdbcTemplate类实现用户登陆验证、批量更新
- ASP.NET(c#)实现防止同一用户同时登陆
- C#中通过js实现个人用户和非个人用户的登陆
- 实现session登陆时间的验证,验证用户登录页面的一个监听器
- ASP.NET(c#)实现防止同一用户同时登陆
- 三层架构下实现用户登陆C#
- java操作xml之dom4j中的xpath实现用户登陆验证
- Laravel框架用户登陆身份验证实现方法详解