1.微博share接口

在开始之前,我们先看一下要用到的这个接口:

我们这次是要上传本地图片,可以很明确的知道,除了要用POST方式提交请求,还要采用multipart/form-data编码方式。

那么这个multipart/form-data编码方式是什么呢?我查了许多资料,然而还是不懂。大概意思应该是把数据拼成web的POST结构。想详细了解的同学可以去参考其他大神的资料。

下面,咱们开始教程。

2.获取本地图片文件

通过Intent打开本地图库

然后通过下面的方法获取图片路径

关于怎么获取图片路径我就不细讲了,网上资料很多,也不难。

获取路径后,将其装载入文件中,如图所示

我获取到的scrPath = /storage/emulated/0/DCIM/P70819-094705.jpg

到此,图片文件的获取结束

3.构造请求体

我之前发纯文本微博时,使用 FormBodybody =newFormBody.Builder() 的形式来构造,

后来发现,带上图片的时候就不行了,我不知道怎么写。

然后采用了RequestBody requestBody =new MultipartBody.Builder()来构造。他们之间的区别我不是很清楚。

但是看源代码,似乎RequestBody更容易实现multipart/form-data编码方式。

当我们获取图片文件之后,就可以将其传到任何一个你觉得方便的地方(不传也可以),用于构造请求体。

.setType(MultipartBody.FORM)

这一句一定不能少,我也不知道为什么,少了之后服务器会说不是multipart/form-data编码方式。

然后如果是参数,使用.addFormDataPart()

如果是图片文件,使用addPart()

我还是附上代码,方便复制。

RequestBodyrequestBody;

requestBody =newMultipartBody.Builder()

.setType(MultipartBody.FORM)//请求的类型,貌似也叫请求头吧....

.addFormDataPart("access_token", access_token)//参数1

.addFormDataPart("status",  statuContent+"http://www.mob.com/downloads/")//参数2

.addPart(

Headers.of("Content-Disposition","form-data; name=\"pic\"; filename=\""+"pic.jpg"+"\""),

RequestBody.create(null, file))//图片文件

.build();

4.构造Request,发送请求

接下来就很简单了,这个和发纯文本的微博差不多。

我最后还用了异步数据处理,来接收返回来的一个statu,当返回的不是错误时,就证明你成功了。

对应的handler

对应的解析方法我就不粘贴出来了,其实不解析也是可以看的,只是会乱点。

以上就是全部内容。

希望我的分享能让你们少走弯路.

相关参考链接:

http://blog.csdn.net/king866/article/details/52526901

http://blog.csdn.net/android_freshman/article/details/51910937

安卓开发 新浪微博share接口实现发带本地图片的微博相关推荐

  1. 解决微信小程序开发中wxss中不能用本地图片

    微信小程序开发中wxss中不能用本地图片,我们可以用将我们的图片传到服务器上,然后直接引用在线地址.但是当我们没有服务器时,我们可以用"图床",这个具体可以百度.这里我们用第二种方 ...

  2. 安卓开发——拍照、裁剪并保存为头像报错:裁剪图片无法保存的

    在做学校大创项目的安卓开发时,需要从相册获取图片或者拍照,然后裁剪保存为头像.由于我是第一次弄安卓开发,也对Android现在越来越多的权限限制不了解,debug过程真的是异常心塞啊. 闲话不说(文末 ...

  3. 安卓androidstudio访问本地接口_安卓开发之数据存储在本地的四种方式

    ​ 安卓开发之数据存储在本地的四种方式 本地数据存储,在安卓开发过程中是不可避免的一个话题.这些本地的数据可能是用户的设置,程序的设置,用户的数据图片, 也可能是网络传输的一些缓冲数据. 基本上我们有 ...

  4. android 微博字体高亮,安卓开发札记——高仿新浪微博文字处理(实现关键字高亮,自定义表情替换并加入点击事件实现)...

    安卓开发笔记--高仿新浪微博文字处理(实现关键字高亮,自定义表情替换并加入点击事件实现) 先让大家看下效果图,这个是我自己在闲暇时间仿写的新浪微博客户端: 今天来讲讲如何实现上图的效果,这里需要用到S ...

  5. uniapp 原生安卓开发插件(module),以及android环境本地调试(一)

    uniapp 原生安卓开发插件(module),以及android环境本地调试 1.开发前景 由于uniapp 框架的局限先,有很多功能不能如原生android开发使用顺畅,因此,需要使用插件进行辅助 ...

  6. 安卓开发:本地数据库SQLite的使用

    上篇文章,讲述了安卓开发中文件存储和SharedPreferences存储方式.这里讲述SQLite数据库存储.我们的通讯录也存在与SQLite数据库中.存放的位置在:/data/data/com.a ...

  7. 安卓开发中的一些经验总结

    1 先大体,后细节. 做安卓开发,一般是需要自己拓荒式的开发,什么都没有,从新自己来做.这个开发过程不要追求所有的点都很细.等项目的大体框架出来以后,再去完善细节. 2. 服务器端和客户端的配合 做客 ...

  8. 安卓开发app版本更新

    安卓开发实战之app之版本更新升级(DownloadManager和http下载)完整实现 转载 wx610a246613cb02021-08-05 17:02:56博主文章分类:14 其他随笔©著作 ...

  9. 安卓开发开发规范手册V1.0

    安卓开发开发规范手册V1.0 之前发布过一份Web安全开发规范手册V1.0,看到收藏文章的读者挺多,发现整理这些文档还挺有意义. 最近周末抽了些时间把之前收集关于安卓安全开发的资料也整理了一下,整理出 ...

最新文章

  1. win7/8SVN必备的4个服务
  2. 【PAT乙级】1072 开学寄语 (20 分)
  3. ubunut16.04解决网速慢的办法
  4. bootstrap grid php,bootstrap grid用法
  5. 去哪儿-04-iconsDev
  6. js 设置style属性
  7. 【360极速浏览器安装axure插件】
  8. w10怎样关闭对计算机更改,W10电脑系统自动更新怎么关闭
  9. 抽象类可以继承具体类吗?
  10. 故事版(storyBoard)-lllegal configuration connection object cannot have a prototype objct as
  11. Vue packages version mismatch
  12. pi/4dqpsk的matlab及FPGA仿真
  13. 父母英语不好,孩子照样行:在家四步轻松搞定英语启蒙 读后感
  14. 【转】WebRTC多人音视频解决方案
  15. ROM,RAM,Cache,Mask ROM,PROM,EPROM,EEPROM,Flash Memory有什么区别和联系【笔记】
  16. CC2640R2F之新手必看心得篇
  17. Python之Scrapy爬虫(热门网站数据爬取)
  18. 2021-2027全球与中国半导体激光电源市场现状及未来发展趋势
  19. [导入]艾薇儿,Avril
  20. 软件架构之 23种设计模式

热门文章

  1. matlab能力处理,书+程序《MATLAB图像处理:能力提高与应用案例》赵小川
  2. java使用三种循环打印99表_编程题:利用for循环打印 9*9 表
  3. 2019我做成的事情
  4. leetcode142 环形链表II
  5. 深度学习(01)-- 基础学习
  6. 关于计算机展览的英语作文,2015考研英语作文范文精选:选什么东西参加展览?...
  7. 使用VS2019创建项目,添加文件和库地址
  8. C++primer 第 2 章 变量和基本类型
  9. python实验练习-类的多继承
  10. ClickHouse 客户端命令