Retrofit使用form-data方式的Post请求

将Post请求的数据放在form-data中,使用Retrofit框架的实现方式

前言:我们一般使用Retrofit进行Post的请求的时候都是把上传的数据放在请求体中的,但是在上传文件等操作时会使用到form-data方式上传数据。form-data表单数据

1.创建网络请求接口的两种方式
//适用于数据量少的情况
@Multipart
@POST("app/user/login")
Call<JsonObject> UserLogin(@Part("username") RequestBody username, @Part("password") RequestBody password);
//推荐使用这种方式,把请求的数据集都放在map中,这样统一处理起来非常的方便。
@Multipart
@POST("app/user/login")
Call<JsonObject> userLogin(@PartMap Map<String, RequestBody> requestBodyMap);
2.生成RequestBody
RequestBody requestBody = RequestBody.create(MediaType.parse("multipart/form-data"),"this_is_username");
//比如可以这样生成Map<String, RequestBody> requestBodyMap
//Map<String, String> requestDataMap这里面放置上传数据的键值对。
private static Map<String, RequestBody> generateRequestBody(Map<String, String> requestDataMap) {
        Map<String, RequestBody> requestBodyMap = new HashMap<>();
        for (String key : requestDataMap.keySet()) {
            RequestBody requestBody = RequestBody.create(MediaType.parse("multipart/form-data"),
                    requestDataMap.get(key) == null ? "" : requestDataMap.get(key));
            requestBodyMap.put(key, requestBody);
        }
        return requestBodyMap;
    }
*剩下的操作都一样
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值