美文网首页
记录一下关于使用retrofit重写requestbody和加入

记录一下关于使用retrofit重写requestbody和加入

作者: 阿拉黑廷斯 | 来源:发表于2018-05-30 12:57 被阅读0次

    遇到这个问题是在某个项目中,项目使用了rxjava+retrofit+okhttp来进行网络通讯,由于项目中需要上传图片并获取进度,so需要继承requestbody重写writeTo方法来获取写入进度。

    本来没有什么问题,一切运行完美,直至有次上传失败,想看看http的通讯日志,于是加入了HttpLoggingInterceptor来输出日志,设置了level为body,接下来就是坑了。

    调用时发现发送requestbody每次都重复,检查代码,没有发现问题,由于是加入log拦截器才导致,于是初步判断是log拦截器的问题,上网搜索无果,自己翻源码看吧,发现

    log拦截器中调用了requestbody.writeto到buffer里(其实早该想到,不然日志是怎么打印出来的)

    于是修改自己继承自requestbody类的writeto方法,将buffer类型的入参只写入buffersink而不写入请求

    OK,搞定!

    相关文章

      网友评论

          本文标题:记录一下关于使用retrofit重写requestbody和加入

          本文链接:https://www.haomeiwen.com/subject/ueetsftx.html