您现在的位置是: > IT > 系统 > Android Retrofit 实现图文上传

Android Retrofit 实现图文上传

时间:2017-01-24 15:04??来源:今天新闻网整理??阅读次数: 复制分享 我要评论

在  博客中,我们详细介绍了多张图片和文字参数上传的具体原理和实现下载手机游戏,今天我们重点说说文字参数类型的问题。


Post请求抓包信息:




接口定义:




从抓包信息中看到文字类型的参数字段名是“data”,下载单机游戏,值是“jdsjlzx”。

其中的Content-Type信息如下:

Content-Type: application/json; charset=UTF-8

无论何种请求,Content-Type类型不能错。请求失败,排查错误首先从这个Content-Type开始,其次是Content-Disposition。

下面我们从一个真实案例来说一说这个Content-Type。


2案例讲解   2.1 接口




从上面图片中就看到上传头像需要传递userId、token等参数。

后台接口开发人员测试接口一般在web上面调试好,葫芦娃小游戏,移动端开发人员就可以根据接口进行联调了。


web端上传头像时请求抓包信息如下所示:




上图红色箭头所指之处就是我们需要注意的地方。


Content-Type类型不是“application/json”,而是“text/plain”。

Content-Type: text/plain; charset=UTF-8


注意:

“@Part(“data”) String des”在Post请求中默认的Content-Type类型就是“application/json”


接口定义如果按照前面文章介绍的那样写,如下图所示,肯定是不行的。




经过网上查资料,我们找到了解决办法,参考:


2.2 解决问题


“@Part(“data”) String des”在Post请求中默认的Content-Type类型是“application/json”,这就说明我们在接口中不能再使用@Part注解了,fps网络游戏,我们需要在代码中指定类型。


上传接口定义




上传头像


主要代码如下图所示:



这里有个toRequestBody函数,主要功能是将文字参数类型转换为“text/plain”。


toRequestBody函数如下图所示:




上传头像请求结果抓包信息:




“userId”、“token”等文字参数的类型成功转换为了“text/plain”类型。


大功告成,看看服务器返回结果吧。



That’s all, thank you.


掘金是一个高质量的技术社区,从 RxJava 到 React Native,性能优化到优秀开源库,让你不错过 Android 开发的每一个技术干货。长按图片二维码识别或者各大应用市场搜索「掘金」,技术干货尽在掌握中。


如果你有好的文章想和大家分享,欢迎投稿,直接向我投递文章链接即可。


欢迎长按下图->识别图中二维码或者扫一扫关注我的公众号:

网站地图 Website Map

 
本站部分文章新闻来源于网络,如无意中对您的利益构成了侵犯,我们深表歉意,请来电告知,我们会立即删除。
今天新闻网版权所有,未经书面授权禁止使用!Copyright © 2015-2016  www.ythaite.com
主办单位:今天新闻网  ICP备案号:鲁ICP备09074049号-1 sitemap 网站地图