.NET调用新浪微博开放平台接口的代码示例

开发 开发工具
博客园在新浪微博上开了官方微博(http://t.sina.com.cn/cnblogs),为了方便一些信息的更新,比如IT新闻,我们使用了新浪微博开放平台接口。

博客园在新浪微博上开了官方微博(http://t.sina.com.cn/cnblogs),为了方便一些信息的更新,比如IT新闻,我们使用了新浪微博开放平台接口。

在这篇文章中,我们将和大家分享如何通过.NET(C#)调用新浪微博开放平台接口。

使用新浪微博开放平台接口,需要先申请一帐号,申请方法:给 @微博开放平台 发送私信,或者给open_sina_mblog@vip.sina.com发邮件,附上您的email,微博个人主页,电话,和简单介绍。

我们发了申请邮件后,不到1小时就收到了申请通过的邮件。然后进入新浪微博开放平台查看相关文档,在文档中(使用Basic Auth进行用户验证)发现新浪微博开发团队推荐了园子里的Q.Lee.lulu写的一篇博文:访问需要HTTP Basic Authentication认证的资源的各种语言的实现。这篇文章成为了我们的重要参考,但该文只是针对“GET”请求的情况,而新浪微博开放平台接口要求HTTP请求方式为“POST”,我们又参考了园子里的乌生鱼汤写的另一篇博文: 使用HttpWebRequest发送自定义POST请求。在这里感谢两位园友的分享!

接下来,我们开始.NET调用新浪微博开放平台接口之旅。

1. 首先我们要获取一个App Key,在新浪微博开放平台的“我的应用”中创建一个应用,就会生成App Key,假设是123456。

2. 在新浪微博API文档中找到你想调用的API,这里我们假定调用发表微博的API-statuses/update,url是http://api.t.sina.com.cn/statuses/update.json,POST的参数:source=appkey&status=微博内容。其中appkey就是之前获取的App Key。

3. 准备数据

1) 准备用户验证数据:

  1. string username = "t@cnblogs.com";  
  2. string password = "cnblogs.com";  
  3. string usernamePassword = username + ":" + password; 

username是你的微博登录用户名,password是你的博客密码。

2) 准备调用的URL及需要POST的数据:

  1. string url = "http://api.t.sina.com.cn/statuses/update.json";  
  2.    string news_title = "VS2010网剧合集:讲述程序员的爱情故事";  
  3.    int news_id = 62747;  
  4.    string t_news = string.Format("{0},http://news.cnblogs.com/n/{1}/", news_title, news_id );  
  5.    string data = "source=123456&status=" + System.Web.HttpUtility.UrlEncode(t_news); 

4. 准备用于发起请求的HttpWebRequest对象:

  1. System.Net.WebRequest webRequest = System.Net.WebRequest.Create(url);  
  2. System.Net.HttpWebRequest httpRequest = webRequest as System.Net.HttpWebRequest; 

5. 准备用于用户验证的凭据:

  1. System.Net.CredentialCache myCache = new System.Net.CredentialCache();  
  2.     myCache.Add(new Uri(url), "Basic"new System.Net.NetworkCredential(username, password));  
  3.     httpRequest.Credentials = myCache;  
  4.     httpRequest.Headers.Add("Authorization""Basic " +   
  5. Convert.ToBase64String(new System.Text.ASCIIEncoding().GetBytes(usernamePassword))); 

6. 发起POST请求:

  1. httpRequest.Method = "POST";  
  2.     httpRequest.ContentType = "application/x-www-form-urlencoded";  
  3.     System.Text.Encoding encoding = System.Text.Encoding.ASCII;  
  4.     byte[] bytesToPost = encoding.GetBytes(data);   
  5.     httpRequest.ContentLength = bytesToPost.Length;  
  6.     System.IO.Stream requestStream = httpRequest.GetRequestStream();  
  7.     requestStream.Write(bytesToPost, 0, bytesToPost.Length);  
  8.     requestStream.Close(); 

上述代码成功执行后,就会把内容发到了你的微博上了。

7. 获取服务端的响应内容:

  1. System.Net.WebResponse wr = httpRequest.GetResponse();  
  2.     System.IO.Stream receiveStream = wr.GetResponseStream();  
  3.     using (System.IO.StreamReader reader = new System.IO.StreamReader(receiveStream, System.Text.Encoding.UTF8))  
  4.     {  
  5.         string responseContent = reader.ReadToEnd();  
  6.     } 

好了,.NET调用新浪微博开放平台接口之旅就完成了,很简单吧。

如果没有Q.Lee.lulu乌生鱼汤的文章作为参考,对我们来说就不会这么轻松,这也许就是分享的价值吧,你的一点小经验却可能给别人带来很大的帮助。

所以,我们也来分享一下,虽然不算什么经验,只是一个整理,但也许会对需要的人有帮助。

相关链接:sarlmolapple写了个C#的SDK:http://code.google.com/p/opensinaapi/

原文链接:http://www.cnblogs.com/cmt/archive/2010/05/13/1733904.html

【编辑推荐】

  1. 腾讯微博开放平台正式推出LBS接口
  2. 国内开放平台谁将***个死去?
  3. 浅析Android SDK开放平台
  4. 360开放平台案例:凤凰网应用
  5. 腾讯开放平台案例:YOKA网
责任编辑:林师授 来源: 博客园
相关推荐

2011-12-08 16:10:18

2011-12-08 16:51:55

新浪微博开放平台

2011-12-08 16:31:43

新浪微博开放平台

2011-12-13 13:55:17

新浪微博开放平台

2012-02-15 17:39:36

2012-02-07 17:05:33

腾讯开放平台

2011-12-08 13:55:39

网易开放平台

2011-12-12 13:37:59

新浪微博

2010-07-28 09:51:18

新浪微博开放平台

2011-12-12 13:26:37

新浪微博

2011-03-11 14:59:06

2013-07-10 14:15:38

php新浪微博

2018-05-16 14:04:05

人工智能新浪微博实时流计算

2013-10-10 09:05:26

新浪微博Redishadoop

2012-05-11 11:40:16

新浪企业微博

2015-09-24 18:08:50

微博架构架构演进架构

2013-07-01 18:34:47

个推案例新浪微博

2015-01-21 15:28:16

Android源码新浪微博

2011-12-07 16:25:01

新浪微博平台

2011-07-22 10:38:55

HTC新浪Facebook
点赞
收藏

51CTO技术栈公众号