Android mvparms 踩坑

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/danfengw/article/details/79219791

GitHub:https://github.com/JessYanCoding/MVPArms
起先是想自己封装Retrofit+Rxjava+mvp这种架构,在网上参考了很多文章,结果就看到了关于mvparms的介绍https://www.jianshu.com/p/4bbecd0bb027
作者把mvparms介绍的非常niu,当然这样的项目能够封装的十分灵活也确实很厉害了,项目好用归好用,但是入门以及熟悉还是需要一定的基础跟门槛的,于是也就踩了很多坑……目前关于踩坑,还是踩的比较少的,所以,能记录多少就记录多少吧,后面再不断补充吧……
关于是否使用这个项目看个人需求吧。

1、关于构建项目

mvparms的官方说明文档写了很多,看起来感觉挺麻烦的,还有一个问题就是毕竟是网络框架以后如果有不适合自己项目的操作可能是需要你自己修改的因此比较推荐的方法是:将github项目下载,下载之后修改项目名跟包名
https://www.cnblogs.com/fuyaozhishang/p/6388407.html
ps:需要注意的是除了修改包名跟项目名还需要修改你的manifest的 package+包名还有build.gradle中的applicationId,修改完成build你会发现Dagger……的类找不到,此时rebuild 或者make project

2、模板的使用

https://github.com/JessYanCoding/MVPArmsTemplate
路径问题:C:\Program Files\Android\Android Studio\plugins\android\lib\templates\activities下
同时需要将解压的下面两个文件复制进去,art我也不太清楚是干嘛的,我没复制
这里写图片描述

3、多BaseUrl

方式一:什么都不需要修改只需要在你的请求上直接加上全路径即可
http://192.168.32.17/php-uploader/upload.php
这里写图片描述
方式二:
https://www.jianshu.com/p/2919bdb8d09a 作者虽然有写,但是在使用过程中可能还会存在坑
在你的model中需要替换Baseurl的地方添加

RetrofitUrlManager.getInstance().putDomain(Api.DOMAIN_UPLOADPIC, Api.APP_UPLOADPIC);

在Serviceapi中的Header上进行添加
这里写图片描述
这里会出现的坑是什么呢?
我上传图片请求的完整路径是:
http://192.168.32.17/php-uploader/upload.php
在不使用多baseurl的情况下,将http://192.168.32.17/php-uploader/作为baseurl将upload.php作为子路径上传正常。
在使用baseurl的情况下,同样的路径配置,网路请求的路径竟然变成了
http://192.168.32.17/upload.php
调试之后发现DefaultUrlParser类返回的url在设置host的时候只返回了192.168.32.17所以也就导致了后面拼接的问题,这样的话考虑解决方式只能通过将http://192.168.32.17/作为Baseurl路径将php-uploader/upload.php作为Post中的子路径,并且这样的路径分割也确实将图片上传成功了。

阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页