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

简介: 1.微博share接口在开始之前,我们先看一下要用到的这个接口:    我们这次是要上传本地图片,可以很明确的知道,除了要用POST方式提交请求,还要采用multipart/form-data编码方式。

1.微博share接口

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


img_a64b813f4f69df77f9d5e6ae5c040c9e.png

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

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

下面,咱们开始教程。

2.获取本地图片文件

通过Intent打开本地图库


img_c2b79a5ca1c9cdd91e2ea6ffcc47bd77.png

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


img_b444203c14163d37522f269eb2c13cf5.png

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

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


img_fc818e133b23daea9a9b31844f3c4a1e.png

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

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

3.构造请求体

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

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

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

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


img_f5df65036e550e25d73909275527eb84.png

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

.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,发送请求

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


img_5cbcdb5a78a79c335df96ed43f4ffdd1.png

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


img_5da7f69d52ee07f0d7365a07a20833e2.png
对应的handler

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

以上就是全部内容。

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

相关参考链接:

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

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

目录
相关文章
|
10天前
|
安全 Android开发 iOS开发
探索安卓与iOS开发的差异:平台特性与用户体验的深度对比
在移动应用开发的广阔天地中,安卓和iOS两大平台各占半壁江山。本文旨在通过数据驱动的分析方法,深入探讨这两大操作系统在开发环境、用户界面设计及市场表现等方面的差异。引用最新的行业报告和科研数据,结合技术专家的观点,本文将提供对开发者和市场分析师均有价值的洞见。
|
13天前
|
Java 开发工具 Android开发
探索Android与iOS开发的差异:平台选择对项目成功的影响
在移动应用开发的广阔天地中,Android和iOS两大平台各自占据着半壁江山。本文将深入探讨这两个平台在开发过程中的关键差异点,包括编程语言、开发工具、用户界面设计、性能优化以及市场覆盖等方面。通过对这些关键因素的比较分析,旨在为开发者提供一个清晰的指南,帮助他们根据项目需求和目标受众做出明智的平台选择。
|
13天前
|
编解码 Android开发 iOS开发
深入探索Android与iOS开发的差异与挑战
【6月更文挑战第24天】在移动应用开发的广阔舞台上,Android和iOS两大操作系统扮演着主角。它们各自拥有独特的开发环境、工具集、用户基础及市场策略。本文将深度剖析这两个平台的开发差异,并探讨开发者面临的挑战,旨在为即将踏入或已在移动开发领域奋斗的开发者提供一份实用指南。
36 13
|
12天前
|
监控 Android开发 iOS开发
探索Android与iOS开发的差异:平台、工具和用户体验的比较
【6月更文挑战第25天】在移动应用开发的广阔天地中,Android和iOS两大平台各领风骚,它们在开发环境、工具选择及用户体验设计上展现出独特的风貌。本文将深入探讨这两个操作系统在技术实现、市场定位和用户交互方面的关键差异,旨在为开发者提供一个全景式的视图,帮助他们在面对项目决策时能够更加明智地选择适合自己项目需求的平台。
|
15天前
|
XML Java 开发工具
Android Studio开发Android TV
【6月更文挑战第19天】
|
12天前
|
缓存 测试技术 Shell
详细解读Android开发命令行完全攻略
详细解读Android开发命令行完全攻略
10 1
|
16天前
|
Java 开发工具 Android开发
安卓与iOS开发差异解析
【6月更文挑战第21天】本文旨在深入探讨安卓和iOS两大移动操作系统在应用开发过程中的主要差异。通过对比分析,揭示各自的设计哲学、编程语言选择、用户界面构建、性能优化策略以及发布流程的异同。文章将提供开发者视角下的实用信息,帮助他们更好地理解各自平台的特点和挑战,从而做出更明智的开发决策。
|
3天前
|
移动开发 Android开发 iOS开发
探索安卓与iOS开发的差异:平台选择对应用性能的影响
在移动开发的广阔舞台上,安卓与iOS这两大操作系统各据一方,引领着技术潮流与市场需求。本文深入探讨了这两个平台在开发过程中的关键差异,并分析了这些差异如何影响应用的性能和用户体验。通过对比分析,我们将揭示开发者在选择平台时应考虑的技术细节,以及这些选择如何塑造最终产品的命运。文章不仅为开发者提供了实用的指导,也为那些对移动开发感兴趣的读者提供了深刻的洞见。
|
4天前
|
Java Android开发 iOS开发
探索安卓与iOS开发的差异:平台特性与创新潜力
在移动应用开发的广阔天地中,安卓和iOS两大平台各占据一方。本文深入剖析了这两个操作系统的开发环境、工具、语言及市场趋势,旨在为开发者提供一个全面的比较视角。文章将基于最新的行业报告、技术论坛讨论以及专家分析,详细阐述两个平台的技术架构差异、开发成本和用户体验设计的不同点。通过数据支持的论证,揭示安卓与iOS在创新潜力上的独特优势,并探讨它们如何塑造未来的移动应用生态。
5 0
|
5天前
|
测试技术 数据库 Android开发
基于Android的聊天软件的设计与实现-一个聊天软件开发起来没那么难不是?(4)
基于Android的聊天软件的设计与实现-一个聊天软件开发起来没那么难不是?
11 0