程序员必知:【转】新浪微博开放平台开发步骤简介(适合新手看)

简介: 程序员必知:【转】新浪微博开放平台开发步骤简介(适合新手看)

原文:

我也是个新手,也是第一次使用开放平台做开发,刚开始感到无处下手,经过半天的摸索终于成功的调用了API,现在把这点经验介绍给新手(高手就没必要看了,当然,如果你能提些意见和建议,我感激不尽),愿同大家一起交流。

  本例介绍的是如何用API提交数据(发布一条微博)和用API获取数据(获取最新更新的20条公共微博消息),也就是官方API中的“获取下行数据集(timeline)接口”下的“statuses/public_timeline 获取最新更新的公共微博消息”和“微博访问接口”下的“statuses/update 发布一条微博信息”。

  首先你要有一个新浪微博帐号,还要申请一个app key(具体请参考然后在VS中新建一个解决方案,在解决方案中添加一个类库和一个网站,并添加引用(网站引用类库)。

  由于发布微博是POST请求,获取数据是GET请求,且通过HTTP普通验证(Basic Authentication)方式授权,因此我把这些功能写在一个类中(放在类库中),代码如下(这个类参考了没有仔细考虑是否达到了通用):

发送请求及授权代码

using System;

using System.Net;

using System.IO;

namespace SinaMiniBlogLib

{

public class SendRequest

{

string username;

string password;

string key;

public string UsernamePassword

{

get { return username + ":" + password; }

}

#region 构造函数

public SendRequest()

{

username = "你的新浪微博帐号";

password = "你的新浪微博密码";

key = "你申请的app key";

}

public SendRequest(string username, string password,string key)

{

this.username = username;

this.password = password;

this.key = key;

}

#endregion

#region 发送GET请求

///

/// 发送GET请求

///

///

地址

/// string

public string SendGetRequest(string url)

{

string Content=string.Empty;

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

WebRequest webRequest = WebRequest.Create(url+"?source="+key);

HttpWebRequest httpRequest = webRequest as HttpWebRequest;

//准备用于用户验证的凭据

CredentialCache myCache = new CredentialCache();

myCache.Add(new Uri(url), "Basic", new NetworkCredential(username, password));

httpRequest.Credentials = myCache;

httpRequest.Headers.Add("Authorization", "Basic " + Convert.ToBase64String(new System.Text.ASCIIEncoding().GetBytes(UsernamePassword)));

//GET方法

httpRequest.Method = "GET";

HttpWebResponse httpRespone = (HttpWebResponse)httpRequest.GetResponse();

if (httpRespone != null httpRespone.StatusCode == HttpStatusCode.OK)

{

using (StreamReader sr = new StreamReader(httpRespone.GetResponseStream()))

{

Content = sr.ReadToEnd();

}

}

return Content;

}

#endregion

#region 发送POST请求

///

/// 发送POST请求

///

///

网址

///

内容

/// string

public string SendPostRequest(string url,string Content)

{

string result = string.Empty;

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

string data = "source="+key+"status=" + Content;

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

WebRequest webRequest = WebRequest.Create(url);

HttpWebRequest httpRequest = webRequest as HttpWebRequest;

//准备用于用户验证的凭据

CredentialCache myCache = new CredentialCache();

myCache.Add(new Uri(url), "Basic", new NetworkCredential(username, password));

httpRequest.Credentials = myCache;

httpRequest.Headers.Add("Authorization", "Basic " + Convert.ToBase64String(new System.Text.ASCIIEncoding().GetBytes(UsernamePassword)));

//发起POST请求

httpRequest.Method = "POST";

httpRequest.ContentType = "application/x-www-form-urlencoded";

System.Text.Encoding encoding = System.Text.Encoding.ASCII;

byte【】 bytesToPost = encoding.GetBytes(data);

httpRequest.ContentLength = bytesToPost.Length;

System.IO.Stream requestStream = httpRequest.GetRequestStream();

requestStream.Write(bytesToPost, 0, bytesToPost.Length);

requestStream.Close();

//获取服务端的响应内容

System.Net.WebResponse wr = httpRequest.GetResponse();

System.IO.Stream receiveStream = wr.GetResponseStream();

using (System.IO.StreamReader reader = new System.IO.StreamReader(receiveStream, System.Text.Encoding.UTF8))

{

result = reader.ReadToEnd();

}

return result;

}//代码效果参考:http://www.ezhiqi.com/zx/art_3184.html

#endregion

}

}

  然后在类库中新建两个实体类status和user,字段与官方API中一致:

status实体类

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace SinaMiniBlogLib

{

public class status

{

public status()

{

user = new user();

}

#region 属性

private DateTime created_at;

private string id;

private string text;

private string source;

pri

相关文章
|
7月前
|
移动开发 小程序 JavaScript
(一)、项目介绍及知识点概述【uniapp+uinicloud多用户社区博客实战项目(完整开发文档-从零到完整项目)】
(一)、项目介绍及知识点概述【uniapp+uinicloud多用户社区博客实战项目(完整开发文档-从零到完整项目)】
114 0
|
机器学习/深度学习 自然语言处理 机器人
ChatGPT体验地址,超多功能,附公众号源码
ChatGPT体验地址,超多功能,附公众号源码
|
6月前
|
程序员 API 数据安全/隐私保护
程序员必知:【转】新浪微博开放平台开发步骤简介(适合新手看)
程序员必知:【转】新浪微博开放平台开发步骤简介(适合新手看)
61 0
|
小程序 JavaScript 前端开发
小程序云开发全套实战教程(最全)
小程序云开发全套实战教程(最全)
144 0
|
7月前
|
小程序 前端开发 JavaScript
(保姆教程及高级玩法及坑)微信同声传译插件-语音识别
(保姆教程及高级玩法及坑)微信同声传译插件-语音识别
432 0
|
小程序 前端开发 JavaScript
微信小程序 谈谈在大学初次写项目的体验
微信小程序 谈谈在大学初次写项目的体验
134 0
|
Java 定位技术 调度
「阿里开发者」微信公众平台9-10月阅读排行榜来袭!
今天,推出「阿里开发者」微信公众号双月阅读排行榜,希望读者可以从阿里人优秀的技术干货硬技能、个人经验软技能中得到成长的启迪!
|
开发者
【官方帖】各位宜搭开发者,晒一晒你的酷应用开发案例,评论留言吖~~~
快来晒一晒你的酷应用开发案例,有机会在宜搭服务窗/微信公众号等渠道进行宣传推广~ 如果有您有更好的酷应用开发场景,需要宜搭产研共创支持,欢迎评论留言
【官方帖】各位宜搭开发者,晒一晒你的酷应用开发案例,评论留言吖~~~
|
分布式计算 资源调度 搜索推荐
云架构师进阶攻略(完整版)-5
云架构师进阶攻略(完整版)
113 0
|
小程序 搜索推荐 测试技术
微信官方出品!小程序自动化框架 minium 分享预告
微信官方出品!小程序自动化框架 minium 分享预告
微信官方出品!小程序自动化框架 minium 分享预告
下一篇
DataWorks