Android Retrofit 实现文字(参数)和图片一起上传?

查看:1344
本文介绍了Android Retrofit 实现文字(参数)和图片一起上传?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

Retrofit图文上传时,如何做到适应所有情况?
1.只有文字
2.只有图片
3.图文都有
使用post请求

解决方案

@Multipart
@POST("/xxx")
Observable<Result<String>> addInfo(@Part List<MultipartBody.Part> requestBodyMap);

        List<MultipartBody.Part> parts = new ArrayList<>();
        parts.add(toRequestBodyOfText("name", userName));
        parts.add(toRequestBodyOfImage("image",foundImage));
        ...

private MultipartBody.Part toRequestBodyOfText (String keyStr, String value) {
        MultipartBody.Part body = MultipartBody.Part.createFormData(keyStr, value);
        return body;
    }

    private MultipartBody.Part toRequestBodyOfImage(String keyStr, File pFile){
        RequestBody requestBody = RequestBody.create(MediaType.parse("multipart/form-data"), pFile);
        MultipartBody.Part filedata = MultipartBody.Part.createFormData(keyStr, pFile.getName(), requestBody);
        return filedata;
    }

这篇关于Android Retrofit 实现文字(参数)和图片一起上传?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆