发表于: 2017-01-05 00:09:08
2 767
今天完成的事情:实现了图片上传功能。添加银行卡模块完成60%
明天计划的事情:完成选择城市和选择开户行功能
遇到的问题:基本的网络请求(get,post)会了,但是其他的还是不太了解,原理不是很清楚。head和body看了一些博客也没看太明白
收获:1.使用retrofit进行网络请求,并在请求体(RequestBody)中添加数据
@Multipart //上传文件使用@Multipart注解
@POST(“网址”)
Call<String> uploadPicture(
@Part("token") RequestBody token, //使用@Part注解向RequestBody中添加参数 一般参数类型都为RequestBody,可以使用转换器Convert转为其他类型
@Part MultipartBody.Part file); //上传文件
RequestBody requestFile = RequestBody.create(MediaType.parse("application/otcet-stream"), new File(s)); //创建RequestBody对象,第二个参数为要上传的文件,其他的目前看不太懂。。
MultipartBody.Part body = MultipartBody.Part.createFormData("file", "share.png", requestFile);
创建Part对象,第一个参数为键名,第二个为文件名,第三个是RequestBody对象
uploadPicture(RequestBody.create(MediaType.parse("multipart/form-data"), "tokenValue"), body);
注意:在方法上同时使用@Multipart和@POST注解时,不能使用@FormUrlEncoded注解,因为@Multipart和@FormUrlEncoded的内部都是对head进行限制,会 冲突。所以使用@Multipart时,参数就不能使用@Field修饰了,使用@Part。不然程序会崩溃。
2.接口回调方法真是好用,特别是加入巧妙的使用方法。比如我使用了一个计数功能,判断方法的执行次数,达到可以判断2次网络请求是否执行完毕的目的,然后才调用回调方法。还有在回调中跳转Activity,期间弹出progressDialog,个人认为可以提高用户体验。
评论