您的位置:首页 > 其它

Retrofit 上传图片(单张)

2016-04-20 09:19 246 查看
服务器端返回信息的格式是:{"code":20000,"imgUrl":""}

编写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());

}
});

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: