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

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

原文:

我也是个新手,也是第一次使用开放平台做开发,刚开始感到无处下手,经过半天的摸索终于成功的调用了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

相关文章
|
2月前
|
移动开发 小程序 JavaScript
(一)、项目介绍及知识点概述【uniapp+uinicloud多用户社区博客实战项目(完整开发文档-从零到完整项目)】
(一)、项目介绍及知识点概述【uniapp+uinicloud多用户社区博客实战项目(完整开发文档-从零到完整项目)】
37 0
|
12月前
|
机器学习/深度学习 自然语言处理 机器人
ChatGPT体验地址,超多功能,附公众号源码
ChatGPT体验地址,超多功能,附公众号源码
|
1天前
|
程序员 API 数据安全/隐私保护
程序员必知:【转】新浪微博开放平台开发步骤简介(适合新手看)
程序员必知:【转】新浪微博开放平台开发步骤简介(适合新手看)
|
4天前
|
存储 ice 索引
经验大分享:PJSUA2开发文档
经验大分享:PJSUA2开发文档
|
2月前
|
人工智能 前端开发 机器人
【杂谈】扣子(Coze) 初体验
扣子(Coze)是什么 官方原文如下: 扣子(coze.cn)是一款用来开发新一代 AI Chat Bot 的应用编辑平台,无论你是否有编程基础,都可以通过这个平台来快速创建各种类型的 Chat Bot,并将其发布到各类社交平台和通讯软件上。 我们可以理解为一个聊天🤖️,可以在其他平台上发布。那就让我们快速开始吧
626 0
|
2月前
|
小程序 前端开发 JavaScript
(保姆教程及高级玩法及坑)微信同声传译插件-语音识别
(保姆教程及高级玩法及坑)微信同声传译插件-语音识别
215 0
|
2月前
|
JSON Java API
⚠⚠⚠java后端开发一些常见问题汇总⚠⚠⚠
⚠⚠⚠java后端开发一些常见问题汇总⚠⚠⚠
|
11月前
|
前端开发 程序员 数据库
程序员需要知道的50个网址,包括编程社区、开发工具、技术博客、在线课程等。
以下是 50 个程序员必须要知道的网站: 1. Codecademy(www.codecademy.com):在线编程学习平台,提供多种编程语言的入门课程。 2. Khan Academy(www.khanacademy.org):非营利性在线学习平台,提供有关计算机科学和编程的免费课程。 3. Udemy(www.udemy.com):在线教育平台,提供大量编程课程,包括入门课程和进阶课程。 4. Coursera(www.coursera.org):在线教育平台,提供全球顶尖大学和机构的编程课程。 5. edX(www.edx.org):在线教育平台,提供全球顶尖大学和机构的编程课程。 6
|
12月前
|
小程序 前端开发 JavaScript
微信小程序 谈谈在大学初次写项目的体验
微信小程序 谈谈在大学初次写项目的体验
110 0
|
12月前
|
XML SQL JSON
程序员开发常用的云在线工具
云在线开发工具:代码格式化,base64/md5加密解密,utf-8转换,时间戳在线生成
194 0