mixer-a
BlogJava
::
首页
::
新随笔
::
联系
::
聚合
::
管理
posts - 101, comments - 29, trackbacks - 0
常用链接
我的随笔
我的评论
我的参与
最新评论
留言簿
给我留言
查看公开留言
查看私人留言
随笔档案
(101)
2012年8月 (2)
2012年7月 (13)
2012年6月 (6)
2012年5月 (6)
2012年4月 (26)
2012年3月 (16)
2012年2月 (17)
2012年1月 (15)
我的连接
a
iteye
csdn
www.javady.com
www.javady.com
搜索
最新评论
1. re: android开发我的新浪微博客户端-登录页面UI篇(4.1)[未登录]
仿真时提示:No Launcher activity found!
--小龙
2. re: android开发我的新浪微博客户端-登录页面UI篇(4.1)[未登录]
“新建名LoginActivity.java的Activity并且在AndroidManifest.xml中进行相应配置”请问怎么进行配置?因为新建的LoginActivity.java无法启动仿真。
--小龙
3. re: JS 时间处理和格式转换
@Wanlic2008
不用把时间的年份拿出来单独分析
--Wanlic2008
4. re: JS 时间处理和格式转换
评论内容较长,点击标题查看
--Wanlic2008
5. re: Android进阶2之Http连接GET/POST请求
有用
--许大海
阅读排行榜
1. JS 时间处理和格式转换(41174)
2. Android进阶2之Activity之间数据交流(onActivityResult的用法)(11496)
3. [原]Android应用程序发送广播(sendBroadcast)的过程分析(7298)
4. [原]Android应用程序键盘(Keyboard)消息处理机制分析(4881)
5. 并行计算框架的Java实现--系列一(3772)
评论排行榜
1. 你想不到的压缩方法:将javascript文件压缩成PNG图像存储(4)
2. MyEclipse快捷键设置(4)
3. 开发流程那些事:6天时间修改1行代码(3)
4. JS 时间处理和格式转换(3)
5. 也谈 GET 和 POST 的区别(2)
Android进阶2之新浪微博采用Oauth发送图片和文字
本以为新浪发布图片和发布文字一样的简单,但很悲剧。。。。。。。远不是想象的那样。
现在分享一下代码。
/** * 发表带图片的微博 * * @param token * @param tokenSecret * @param status * 发表的内容 * @param urlPath * 图片的地址 本函数没有用到,我直接在函数中创建的。 * @return */ public static void uploadStatus(String token, String tokenSecret, String imageUrl, String status) { File files = Environment.getExternalStorageDirectory(); String sdPath = files.getAbsolutePath(); // 请保证SD卡根目录下有这张图片文件 String urlPath = sdPath + "/" + "c.jpg"; File imageFile = new File(urlPath); if (!imageFile.exists()) { System.out.println("没有该图片"); } httpOauthConsumer = new DefaultOAuthConsumer("你的AppKey","你的AppSecret");//记得用你的替换一下 httpOauthConsumer.setTokenWithSecret(token, tokenSecret);//token tokenSecret之前工作的任务 try { URL url = new URL(Constants.XinLangUpload);//URL:http://api.t.sina.com.cn/statuses/upload.json HttpURLConnection request = (HttpURLConnection) url.openConnection(); request.setDoOutput(true); request.setRequestMethod("POST"); HttpParameters httpParameters = new HttpParameters(); httpParameters.put("status", URLEncoder.encode(status, "utf-8").replaceAll("\\+", "%20")); String boundary = "---------------------------37531613912423"; String content = "--" + boundary + "\r\nContent-Disposition: form-data; name=\"status\"\r\n\r\n"; String pic = "\r\n--" + boundary + "\r\nContent-Disposition: form-data; name=\"pic\"; filename=\"image.jpg\"\r\nContent-Type: image/jpeg\r\n\r\n"; byte[] end_data = ("\r\n--" + boundary + "--\r\n").getBytes(); FileInputStream stream = new FileInputStream(imageFile); byte[] file = new byte[(int) imageFile.length()]; stream.read(file); request.setRequestProperty("Content-Type", "multipart/form-data; boundary=" + boundary); // 设置表单类型和分隔符 request.setRequestProperty( "Content-Length", String.valueOf(content.getBytes().length + status.getBytes().length + pic.getBytes().length + imageFile.length() + end_data.length)); // 设置内容长度 httpOauthConsumer.setAdditionalParameters(httpParameters); httpOauthConsumer.sign(request); OutputStream outputStream = request.getOutputStream(); outputStream.write(content.getBytes()); outputStream.write(status.getBytes()); outputStream.write(pic.getBytes()); outputStream.write(file); outputStream.write(end_data); outputStream.flush(); outputStream.close(); request.connect(); if (200 == request.getResponseCode()) { System.out.println("发布成功"); } else { System.out.println("异常code:" + request.getResponseCode()); } } catch (Exception e1) { e1.printStackTrace(); } }
posted on 2012-04-06 16:26
mixer-a
阅读(346)
评论(0)
编辑
收藏
新用户注册
刷新评论列表
只有注册用户
登录
后才能发表评论。
网站导航:
博客园
IT新闻
知识库
C++博客
博问
管理