安卓开发 新浪微博share接口实现发带本地图片的微博-阿里云开发者社区

开发者社区> gtleaf> 正文

安卓开发 新浪微博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

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
创建卡券模板接口(alipay.pass.template.add)JAVA版本小样
官方接口文档:https://docs.open.alipay.com/199/105250/  基本操作流程  1.创建应用等流程不概述了,调用该接口主要第一步是模板设计:推荐使用卡券平(https://alipassprod.
404 0
安卓开发实现画廊效果
画廊 使用Gallery表示,按水平方向显示内容,并且可以用手指直接拖动图片移动,一般用来浏览图片,被选中的选项位于中间,可以响应事件显示信息。 xml布局文件基本语法 Gallery支持4中xml属性   属性名称 描述 android:animationDuration 设置布局变化时动画的转换所需的时间(毫秒级)。
753 0
在使用蓝牙接口,遇到IOS下正常,Android下不正常的简易处理方法
如果遇到以上的情况怎么办,先确定下在调试的时候是否打开了调试面板, 如果有打开请关闭调试面板看是否还有问题,目前在安卓上打开调试面板是会有影响到蓝牙接口的使用,从之前遇到过这些问题的统计中也确实是因为这个原因
238 0
+关注
gtleaf
android开发工作人员。起于Android,不止于Android。
8
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载