Retrofit 上传图片(单张)
2016-04-20 09:19
246 查看
服务器端返回信息的格式是:{"code":20000,"imgUrl":""}
编写interface——ApiUploadImg:
编写interface——ApiUploadImg:
/** * *上传图片接口 */ public interface ApiUploadImg { /**图片上传API*/ /* @POST("Comm") Observable<ResponseApi<UploadImgResponse>> uploadImg(@Body RequestApi RequestApi);*/ @Multipart @POST("Comm/uploadImg") Call<ResponseBody> uploadImage(/*@Part("fileName") String description,*/ @Part("file\"; filename=\"image.png") RequestBody imgs); // @Multipart // @POST("Comm/uploadImg") // Observable<ResponseApi<UploadImgResponse>> uploadImg( @Part("description") RequestBody description, @Part MultipartBody.Part file); @Multipart @POST("Comm/uploadImg") Call<UploadImgResponse> uploadImg( @Part("description") RequestBody description, @Part MultipartBody.Part file); }使用:
private void upLoadImg(String imgStr) { File file = new File(imgStr); // create RequestBody instance from file RequestBody requestFile = RequestBody.create(MediaType.parse("multipart/form-data"), file); // MultipartBody.Part is used to send also the actual file name MultipartBody.Part body = MultipartBody.Part.createFormData("picture", file.getName(), requestFile); // add another part within the multipart request String descriptionString = "hello, this is description speaking"; RequestBody description = RequestBody.create( MediaType.parse("multipart/form-data"), descriptionString); // create upload service client ApiUploadImg service = RetrofitUtil.getInstance().getService(ApiUploadImg.class); // finally, execute the request Call<UploadImgResponse> call = service.uploadImg(description, body); call.enqueue(new Callback<UploadImgResponse>() { @Override public void onResponse(Call<UploadImgResponse> call, Response<UploadImgResponse> response) { if (null != response) { int code = response.body().getCode(); String imgUrl = response.body().getImgUrl(); switch (code) { case 50000: ToastUtil.toast(getMyActivity(), "上传图片偏成功"); break; case 80020: ToastUtil.toast(getMyActivity(), "上传图片失败,图片格式不正确"); break; case 80021: ToastUtil.toast(getMyActivity(), "上传图片失败,图片大小不正确"); break; } Log.e(TAG, "图片路径:" + imgUrl); } else { ToastUtil.toast(getMyActivity(), getResources().getString(R.string.server_null)); } } @Override public void onFailure(Call<UploadImgResponse> call, Throwable e) { ToastUtil.toast(getMyActivity(), getResources().getString(R.string.connect_server_error) + e.getMessage()); } }); }
相关文章推荐
- 赛门铁克扩展验证EV SSL证书
- 使用 Java 配置进行 Spring bean 管理
- Qt事件传递机制(QApplication::installEventFilter的作用)
- 成员变量和局部变量同名 / 局部变量的作用域最小化
- 使用slidingmenu ,侧滑菜单
- Android四大控件之Activity:理论篇
- linux eclipse 下 Symbol 'std’could not be resolved 问题的解决
- ios常用三方资源
- YII 获取系统级请求参数的常用方法
- Android开发-API指南-<activity>
- (转)Javascript面向对象编程(三):非构造函数的继承(作者:阮一峰)
- WebAPI2使用Autofac实现IOC属性注入完美解决方案
- JAVA字符串操作
- 超声波测距实验
- [opencv] 伪彩色和彩虹图
- java中的内存分配和使用(参考学习)
- MYSQL中日期与字符串间的相互转换
- RESideMenu
- 第六节---ROS操作系统----理解ROS节点
- (转)Javascript面向对象编程(二):构造函数的继承(作者:阮一峰)