发表于: 2017-01-05 00:09:08

2 765


今天完成的事情:实现了图片上传功能。添加银行卡模块完成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,个人认为可以提高用户体验。



返回列表 返回列表
评论

    分享到