看到网上很多人找新浪登录的源代码,甚至发到威客上去了! 下面直接公布新浪登录和发布博文的源码
public static string pSina(string user,string psw,string title,string txt) { myDomain(container); // login string url = "http://login.sina.com.cn/js(v6.3.7)"; string pData = string.Format("service=sso&client=ssologin.js%28v1.3.7%29&entry=sso&encoding=GB2312&gateway=1&savestate=0&from=&useticket=0"); string content = Execute(url, "post", pData); writeS(url, "login"); myDomain(container); // personal Powered BY Error // url = "http://i.blog.sina.com.cn/byerror/index.php?com=1"; // content= Execute(url,"get",""); // myDomain(container); // pr_Create and Get url = "http://control.blog.sina.com.cn/myDomain/article_add.php"; // write it for test"/> content = Execute(url, "get", ""); string strDatePub = myMatch(content, "(?<=input type=\"hidden\" name=\"date_pub\" id=\"date_pub\" value=\").*(?=\"/)", 0); string strTime = myMatch(content, "(?<=>>>" + pData); content = Execute(url, "post", pData); if(content.Contains("success")) // 这里返回值有问题。没改 { // 返回博文地址 return string.Format("http://blog.sina.com.cn/s/blog_{0}.html", myMatch(content, "(test)", 0)); } else { return ""; } }
说明:以上是C#登录新浪源代码,其实各大博客(网易、搜狐、百度、和讯、腾讯、博客大巴Blogbus)的登录和发布源代码都能实现...
登录流程:通过新浪SSO登录接口完成用户认证
数据获取:先获取发布页面,提取必要的表单字段(如date_pub、time等)
内容编码:使用UTF-8编码处理中文标题和正文内容
表单提交:构造完整的博文发布表单数据并POST提交
结果处理:解析返回内容获取博文发布地址