之前我们已经完成了发送微博的界面设计,现在我们来尝试编写发送一条微博。新浪微博发送文字微博的API文档查看地址:http://open.weibo.com/wiki/Statuses/update
这里采用post方法向新浪提交数据。与获取账号信息一样,我们还是采用HttpClient开源项目,来为发送http请求。
先看post方法:
/*
* 新浪微博发送普通微博post方法
*/
public String doPost(String url, List<NameValuePair> pairs)
throws OAuthMessageSignerException,
OAuthExpectationFailedException, OAuthCommunicationException,
ClientProtocolException, IOException {
HttpPost postRequest = new HttpPost(url);
postRequest.setEntity(new UrlEncodedFormEntity(pairs, HTTP.UTF_8));//对传入的参数进行UTF-8编码,然后写入到Entity中
// 关闭Expect:100-Continue握手
// 100-Continue握手需谨慎使用,因为遇到不支持HTTP/1.1协议的服务器或者代理时会引起问题
postRequest.getParams().setBooleanParameter(
CoreProtocolPNames.USE_EXPECT_CONTINUE, false);
consumer.sign(postRequest);//对请求进行OAuth认证签名
System.out.println(postRequest.getRequestLine().getUri());
HttpResponse response = null;
response = new DefaultHttpClient().execute(postRequest);//发送请求
//String result = parseStringFromEntity(response.getEntity());
return result;
}
与获取账号信息一样,我们在外部通过NameValuePair讲参数传入到请求中。
然后我们为发送按钮,添加一个监听器
sendStatus = (ImageButton) findViewById(R.id.send_right);
sendStatus.setOnClickListener(new sendStatusListener());
取得EditText中用户输入的文字
text = (EditText) findViewById(R.id.editStatus);
String statustext = text.getText().toString();
给EditText设置一个监听器,用来监控用户输入的字符数
text.addTextChangedListener(new textWatcher());
/*
* 监控EditText改变情况,记录输入的字符数
*/
class textWatcher implements TextWatcher {
@Override
public void afterTextChanged(Editable arg0) {
// TODO Auto-generated method stub
textcount.setText("" + text.getText().toString().length());
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
// TODO Auto-generated method stub
}
@Override
public void onTextChanged(CharSequence s, int start, int before,
int count) {
// TODO Auto-generated method stub
}
}
看下发送微博监听器中的代码:
/*
* 发送微博按钮的监听
*/
class sendStatusListener implements OnClickListener {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
WeiBoClient weibo = new WeiBoClient(SinaConstant.CONSUMER_KEY,
SinaConstant.CONSUMER_SECRET, access_token, access_secret);
List<NameValuePair> params = new ArrayList<NameValuePair>();
BasicNameValuePair sourcepair = new BasicNameValuePair("source", SinaConstant.CONSUMER_SECRET);
BasicNameValuePair statuspair = new BasicNameValuePair("status", status);
params.add(sourcepair);
params.add(statuspair);
weibo.doPost("http://api.t.sina.com.cn/statuses/update.json", params);
}
}
WeiBoClient类参考Android:SNS客户端开发二:获取账号资料中的内容,我们只需要将本文章开始的post方法添加到其中就可以了。
分享到:
相关推荐
Android:SNS客户端开发八:发送带图片的微博 第一种方法
阿里投资新浪微博:马云的SNS之梦.docx
路过插件.开源sns必备插件。
基于安卓Android的SNS社交网络客户应用需求调研报告范本.pdf基于安卓Android的SNS社交网络客户应用需求调研报告范本.pdf基于安卓Android的SNS社交网络客户应用需求调研报告范本.pdf基于安卓Android的SNS社交网络客户...
报报告:SNS在中国的机会及未来发展趋向报报告:SNS在中国的机会及未来发展趋向
电子商务案例分析:SNS平台案例.ppt
本人在12年7月份研究android如何与SNS网站接入时写的备忘录,主要信息也是收集于各SNS网站的接入开发说明,然后加以精简,希望节省大家时间,对大家有帮助。主要网站包括开心网、腾讯微博、新浪微博、人人网。
Android的SNS App源码,内容自己看哈,互相交流学习下
微博通是一款基于API的多个微博平台及SNS同步更新的微博桌面工具。通过微博通,用户可以向已注册的各个微博平台发送消息和查看各个平台接收的信息。目前支持:新浪微博、腾讯微博、搜狐微博、网易微博、百度说吧、...
记事狗微博系统采用php mysql开发并开源发布,可承载千万级用户,其支持Wap、3G、Android客户端、iphone客户端、短信、微信等多种方式发布内容,并可选择同步到主流的微博平台(也支持微博帐户登录),内置的插件和...
人人都玩开心网:Ext+JS+Android+SSH整合开发Web与移动SNS
微博通是一款基于API的多个微博平台及SNS同步更新工具。通过微博通,用户可以向已注册的各个微博平台发送消息和查看各个平台接收的信息。目前支持:新浪微博、腾讯微博、搜狐微博、网易微博、百度说吧、139说客、...
开心网CEO程炳皓:SNS的3个方向.docx
Android娱乐多媒体软件、赶集网手机客户端、移动办公、来电管理器、短信监控器、电话监控器、手机安全软件、手机守护神、新浪微博客户端、贪吃蛇游戏、数独游戏。 Java虚拟机实现、基于分布式架构的大型B2C电子商务...
我的第二个android sns应用程序。 与相比,此应用程序是升级版本。 잭트는 진화된잭트NS NS케케케케케NS NS NS。 。른른。구현했습니구현했습니구현했습니구현했습니。 목차 기술스택 언어: Java,PHP,...
Android经典开发---豆瓣网移动客户端 讲解+源代码
基于安卓Android的SNS社交网络客户应用需求调研报告范本.docx基于安卓Android的SNS社交网络客户应用需求调研报告范本.docx基于安卓Android的SNS社交网络客户应用需求调研报告范本.docx基于安卓Android的SNS社交网络...
拥有Web端、iOS、Android客户端以及H5手机版;其轻量化的应用模式,稳固的底层架构,强大的延伸性,支持二次开发拓展。自主版本IM聊天系统,让及时聊天功能不在产生额外花费。朋友圈、微吧、话题、频道、找伙伴、商城...
Caokun.Net:trade_mark: SNS:开源社交网络服务软件,PHP + MySQL编写
它是支持ActivityPub的分布式SNS的客户端。 如何使用 您可以通过输入分布式SNS的实例地址并登录来使用它。 支持的操作系统 Windows10 64位 对于Mac和Linux,我们将尽快制作兼容版本。 (也许) 更新记录 1.0.0第一...