美文网首页
使用Retrofit上传图片的注意事项

使用Retrofit上传图片的注意事项

作者: 母老虎饲养员 | 来源:发表于2017-08-07 17:13 被阅读0次

/**

* api接口

*/

interfaceApiService {

    //上传头像

    @Multipart

    @POST(Constant.MEMBER_URL)

    Observable<Object>upLoadImage(@Query("userId") String userId,@PartMultipartBody.Part file,@QueryMap Map<String,String> map);

}

需要注意的,我已经用黑色加粗字体显示,@Multipart 是 Retrofit 用于文件上传的注解,配合@POST一起使用;

和平时的使用 Retrofit 网络请求不一样的是,上传图片需要添加请求头,一般都是在用户信息页上传头像,就以用户信息的一般逻辑举例;

@Query("userId") String userId,这些是你的普通参数,什么用户名,密码,年龄,前端和服务器约定的是什么字段参数,就写在@Query里,用引号括起来,有多少写多少;

@QueryMap Map<String ,String> map,是前端和服务器约定好的方法 act  mod;

@PartMultipartBody.Part file  ,是你要上传到服务器的图片参数;

RequestBody requestFile = RequestBody.create(MediaType.parse("multipart/form-data"),file);

MultipartBody.Part body = MultipartBody.Part.createFormData("imageFile",file.getName(),requestFile);

multipart/form-data  就是决定上传头像是否成功的关键所在------请求头;

imageFile 是前端和服务器约定好的这个图片的参数名,其实和 userId , password , age等等都是同级别的参数,只不过要放在这里添加,因为是给这个 imageFile 添加请求头,当然 你那里有可能叫做 picture  ,叫 image ,总之是什么,你就放什么;

每一步缺一不可;

相关文章

网友评论

      本文标题:使用Retrofit上传图片的注意事项

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