Android新浪微博获取评论信息、发表评论、转发微博等
首先前面一节中说过,获取用户的微博信息,这里简单介绍下获取微博的评论信息,以及对微博进行评论,转发微博等.
OAuth认证,这里就不多说了,
我说名一下接口:
获取微博的评论列表接口: http://api.t.sina.com.cn/statuses/comments.json

我们这里需要把微博ID做为参数请求,这个ID我们可以根据前面一节解析用户的微博信息得到.
对微博进行评论接口:http://api.t.sina.com.cn/statuses/comment.json

我们需要把微博的id,与我们的评论comment做为参数进行请求.
微博转发接口:http://api.t.sina.com.cn/statuses/repost.json

这里我们只需要微博的id.
下面是实现部分代码:
- /***
- * 获取用户的评论
- *
- * @param requstURL
- * 请求url
- * @param blog_id
- * 微博id
- * @return JSON(String)
- * @throws OAuthMessageSignerException
- * @throws OAuthExpectationFailedException
- * @throws OAuthCommunicationException
- * @throws ClientProtocolException
- * @throws IOException
- * @throws JSONException
- */
- public static String getJSONBlogsComments(String requstURL, String blog_id)
- throws OAuthMessageSignerException,
- OAuthExpectationFailedException, OAuthCommunicationException,
- ClientProtocolException, IOException, JSONException {
- String jsonArray = null;
- HttpResponse httpResponse;
- HttpClient client = new DefaultHttpClient();
- HttpPost httpPost = new HttpPost(requstURL);
- getTokenAndTokenSecret();
- CommonsHttpOAuthConsumer authConsumer = new CommonsHttpOAuthConsumer(
- Constant.weiBo.consumerKey, Constant.weiBo.consumerSecret);
- authConsumer.setTokenWithSecret(token, tokenSecret);
- List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
- nameValuePairs
- .add(new BasicNameValuePair(Constant.weiBoTag.id, blog_id));
- httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairs, HTTP.UTF_8));
- httpPost.getParams().setBooleanParameter(
- CoreProtocolPNames.USE_EXPECT_CONTINUE, false);
- authConsumer.sign(httpPost);
- httpResponse = client.execute(httpPost);
- if (HttpStatus.SC_OK == httpResponse.getStatusLine().getStatusCode()) {
- jsonArray = EntityUtils.toString(httpResponse.getEntity());
- }
- Log.i(Constant.TAG, jsonArray);
- return jsonArray;
- }
- /***
- * 评论一条微博
- *
- * @throws IOException
- * @throws ClientProtocolException
- * @throws OAuthCommunicationException
- * @throws OAuthExpectationFailedException
- * @throws OAuthMessageSignerException
- */
- public static boolean CommentBlogByID(String blog_ID, String comment,
- String requstURL) throws ClientProtocolException, IOException,
- OAuthMessageSignerException, OAuthExpectationFailedException,
- OAuthCommunicationException {
- HttpResponse httpResponse;
- HttpClient client = new DefaultHttpClient();
- HttpPost httpPost = new HttpPost(requstURL);
- getTokenAndTokenSecret();
- CommonsHttpOAuthConsumer authConsumer = new CommonsHttpOAuthConsumer(
- Constant.weiBo.consumerKey, Constant.weiBo.consumerSecret);
- authConsumer.setTokenWithSecret(token, tokenSecret);
- List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
- nameValuePairs
- .add(new BasicNameValuePair(Constant.weiBoTag.id, blog_ID));
- nameValuePairs.add(new BasicNameValuePair(Constant.weiBoTag.comment,
- comment));
- httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairs, HTTP.UTF_8));
- httpPost.getParams().setBooleanParameter(
- CoreProtocolPNames.USE_EXPECT_CONTINUE, false);
- authConsumer.sign(httpPost);
- httpResponse = client.execute(httpPost);
- if (HttpStatus.SC_OK == httpResponse.getStatusLine().getStatusCode()) {
- return true;
- }
- return false;
- }
- /****
- * 微博转发
- *
- * @param blog_ID
- * 微博id
- * @param requstURL
- * 请求URL
- * @return
- * @throws OAuthMessageSignerException
- * @throws OAuthExpectationFailedException
- * @throws OAuthCommunicationException
- * @throws ClientProtocolException
- * @throws IOException
- */
- public static boolean TranspondBlog(String blog_ID, String requstURL)
- throws OAuthMessageSignerException,
- OAuthExpectationFailedException, OAuthCommunicationException,
- ClientProtocolException, IOException {
- HttpResponse httpResponse;
- HttpClient client = new DefaultHttpClient();
- HttpPost httpPost = new HttpPost(requstURL);
- getTokenAndTokenSecret();
- CommonsHttpOAuthConsumer authConsumer = new CommonsHttpOAuthConsumer(
- Constant.weiBo.consumerKey, Constant.weiBo.consumerSecret);
- authConsumer.setTokenWithSecret(token, tokenSecret);
- List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
- nameValuePairs
- .add(new BasicNameValuePair(Constant.weiBoTag.id, blog_ID));
- httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairs, HTTP.UTF_8));
- httpPost.getParams().setBooleanParameter(
- CoreProtocolPNames.USE_EXPECT_CONTINUE, false);
- authConsumer.sign(httpPost);
- httpResponse = client.execute(httpPost);
- if (HttpStatus.SC_OK == httpResponse.getStatusLine().getStatusCode()) {
- return true;
- }
- return false;
- }
/***
* 获取用户的评论
*
* @param requstURL
* 请求url
* @param blog_id
* 微博id
* @return JSON(String)
* @throws OAuthMessageSignerException
* @throws OAuthExpectationFailedException
* @throws OAuthCommunicationException
* @throws ClientProtocolException
* @throws IOException
* @throws JSONException
*/
public static String getJSONBlogsComments(String requstURL, String blog_id)
throws OAuthMessageSignerException,
OAuthExpectationFailedException, OAuthCommunicationException,
ClientProtocolException, IOException, JSONException {
String jsonArray = null;
HttpResponse httpResponse;
HttpClient client = new DefaultHttpClient();
HttpPost httpPost = new HttpPost(requstURL);
getTokenAndTokenSecret();
CommonsHttpOAuthConsumer authConsumer = new CommonsHttpOAuthConsumer(
Constant.weiBo.consumerKey, Constant.weiBo.consumerSecret);
authConsumer.setTokenWithSecret(token, tokenSecret); List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
nameValuePairs
.add(new BasicNameValuePair(Constant.weiBoTag.id, blog_id));
httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairs, HTTP.UTF_8));
httpPost.getParams().setBooleanParameter(
CoreProtocolPNames.USE_EXPECT_CONTINUE, false); authConsumer.sign(httpPost);
httpResponse = client.execute(httpPost); if (HttpStatus.SC_OK == httpResponse.getStatusLine().getStatusCode()) {
jsonArray = EntityUtils.toString(httpResponse.getEntity());
}
Log.i(Constant.TAG, jsonArray);
return jsonArray;
} /***
* 评论一条微博
*
* @throws IOException
* @throws ClientProtocolException
* @throws OAuthCommunicationException
* @throws OAuthExpectationFailedException
* @throws OAuthMessageSignerException
*/
public static boolean CommentBlogByID(String blog_ID, String comment,
String requstURL) throws ClientProtocolException, IOException,
OAuthMessageSignerException, OAuthExpectationFailedException,
OAuthCommunicationException {
HttpResponse httpResponse;
HttpClient client = new DefaultHttpClient();
HttpPost httpPost = new HttpPost(requstURL);
getTokenAndTokenSecret();
CommonsHttpOAuthConsumer authConsumer = new CommonsHttpOAuthConsumer(
Constant.weiBo.consumerKey, Constant.weiBo.consumerSecret);
authConsumer.setTokenWithSecret(token, tokenSecret); List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
nameValuePairs
.add(new BasicNameValuePair(Constant.weiBoTag.id, blog_ID));
nameValuePairs.add(new BasicNameValuePair(Constant.weiBoTag.comment,
comment)); httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairs, HTTP.UTF_8));
httpPost.getParams().setBooleanParameter(
CoreProtocolPNames.USE_EXPECT_CONTINUE, false);
authConsumer.sign(httpPost); httpResponse = client.execute(httpPost); if (HttpStatus.SC_OK == httpResponse.getStatusLine().getStatusCode()) {
return true;
}
return false;
} /****
* 微博转发
*
* @param blog_ID
* 微博id
* @param requstURL
* 请求URL
* @return
* @throws OAuthMessageSignerException
* @throws OAuthExpectationFailedException
* @throws OAuthCommunicationException
* @throws ClientProtocolException
* @throws IOException
*/
public static boolean TranspondBlog(String blog_ID, String requstURL)
throws OAuthMessageSignerException,
OAuthExpectationFailedException, OAuthCommunicationException,
ClientProtocolException, IOException {
HttpResponse httpResponse;
HttpClient client = new DefaultHttpClient();
HttpPost httpPost = new HttpPost(requstURL);
getTokenAndTokenSecret();
CommonsHttpOAuthConsumer authConsumer = new CommonsHttpOAuthConsumer(
Constant.weiBo.consumerKey, Constant.weiBo.consumerSecret);
authConsumer.setTokenWithSecret(token, tokenSecret); List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
nameValuePairs
.add(new BasicNameValuePair(Constant.weiBoTag.id, blog_ID)); httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairs, HTTP.UTF_8));
httpPost.getParams().setBooleanParameter(
CoreProtocolPNames.USE_EXPECT_CONTINUE, false);
authConsumer.sign(httpPost); httpResponse = client.execute(httpPost); if (HttpStatus.SC_OK == httpResponse.getStatusLine().getStatusCode()) {
return true;
}
return false;
}
其实主要是Oauth认证,我们只需要相应的Token 和Tokensecret,这些接口没有什么,相信大家看过新浪API都会的.
下面是实现后的效果:

获取用微博的评论列表 获取用户的评论列表

微博评论界面 刚评论的信息

转发的微博.
Android新浪微博获取评论信息、发表评论、转发微博等的更多相关文章
- 【Android Studio安装部署系列】十一、Android studio获取数字签名信息
版权声明:本文为HaiyuKing原创文章,转载请注明出处! 概述 下面介绍下调试版本和发布版本获取数字签名的方法,通过以下方法可以获取到SHA1和MD5. 一般在使用分享功能,在第三方平台中创建应用 ...
- Android 开发 获取设备信息与App信息
设备信息 设备ID(DeviceId) 获取办法 android.telephony.TelephonyManager tm = (android.telephony.TelephonyManager ...
- 如何通过android代码获取LTE信息?
最近为了成功得到LTE的信号强度,尝试了很多种方法: (1)通过解析signalstrength字符串,但是不同手机设备获得的字符串排列顺序不同,代码如下: private PhoneStateLis ...
- Android之使用MediaMetadataRetriever类获取媒体信息
一.昨天.介绍了使用MediaMetadataRetriever类来获取视频第一帧:http://blog.csdn.net/u012561176/article/details/47858099,今 ...
- Android 获取内存信息
由于工作需要,研究了一下android上获取内存信息的方法,总结如下: 1.SDK获取 在Java层利用API获取很简单,直接使用ActivityManager.MemoryInfo类即可,代码如下: ...
- android之读取联系人信息
联系人信息被存放在一个contacts2.db的数据库中 主要的两张表 读取联系人 读取联系人需要知道联系人内容提供者的地址,以及对应的操作对象.一般情况下操作对象是的命名方式和表明是一致的. 布局文 ...
- [Python爬虫] Selenium爬取新浪微博客户端用户信息、热点话题及评论 (上)
转载自:http://blog.csdn.net/eastmount/article/details/51231852 一. 文章介绍 源码下载地址:http://download.csdn.net/ ...
- 好客租房43-react组件基础综合案例-4获取评论信息
获取评论信息 1使用受控组件方式创建表单 //导入react import React from 'react' import ReactDOM from 'react-dom' //导入组件 // ...
- [Python爬虫] Selenium+Phantomjs动态获取CSDN下载资源信息和评论
前面几篇文章介绍了Selenium.PhantomJS的基础知识及安装过程,这篇文章是一篇应用.通过Selenium调用Phantomjs获取CSDN下载资源的信息,最重要的是动态获取资源的评论,它是 ...
随机推荐
- JVM-类加载机制
虚拟机类加载机制 虚拟机把描述的类的数据从class文件加载到内存后,并对数据进行校验,转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制. 类加载的时机 类被 ...
- python3 使用pyperclip读写剪贴板(windows)
2016年5月14日 03:41:38 codegay 使用pyperclip库读写剪贴板非常简单~, 1.使用命令安装: pip install pyperclip 2.然后...就可以了: 以下是 ...
- HttpClientHandler
string url = "http://"; //创建HttpClient(注意传入HttpClientHandler) var handler = new HttpClient ...
- C++异常处理的问题
一般在C语言中,是通过返回值或者设置errno的方式来标识错误的 但在C++里面,构造函数是没有返回值的,于是发明了异常的方式:为了正确的向使用者表明 异常抛出的原因,你必须弄清楚异常抛出的原因(比如 ...
- LINUX系统编程 由REDIS的持久化机制联想到的子进程退出的相关问题
19:22:01 2014-08-27 引言: 以前对wait waitpid 以及exit这几个函数只是大致上了解,但是看REDIS的AOF和RDB 2种持久化时 均要处理子进程运行完成退出和父进程 ...
- .jre下的lib和jdk下的lib的区别
jre是JDK的一个子集.提供一个运行环境.JDK的lib目录是给JDK用的,例如JDK下有一些工具,可能要用该目录中的文件.例如,编译器等.JRE的lib目录是为JVM,运行时候用的.包括所有的标准 ...
- Web存储(Web Storage)的浏览器支持情况
所有很酷的功能特征的出现最关键的就是浏览器的支持情况,幸运的是,所有的现代浏览器都支持HTML5 Web存储(Web Storage),从IE8开始也支持它.HTML5 Web存储(Web Stora ...
- 论文笔记之:Deep Generative Image Models using a Laplacian Pyramid of Adversarial Networks
Deep Generative Image Models using a Laplacian Pyramid of Adversarial Networks NIPS 2015 摘要:本文提出一种 ...
- Android性能之启动时间篇
背景介绍 Android用户也许会经常碰到以下的问题: 1)应用后台开着,手机很快没电了--应用耗电大: 2)首次/非首次启动应用,进入应用特别慢--应用启动慢: 3)应用使用过程中,越来越卡--CP ...
- CSS id 选择器
id 选择器 id 选择器可以为标有特定 id 的 HTML 元素指定特定的样式. id 选择器以 "#" 来定义. 下面的两个 id 选择器,第一个可以定义元素的颜色为红色,第二 ...