美文网首页
Retrofit 上传文件带参数

Retrofit 上传文件带参数

作者: 盗梦如画 | 来源:发表于2020-08-27 10:41 被阅读0次

方法一

@Multipart 
@POST("/imOpenApi/uploadGroupImg")
Observable<BaseInfo<String>> uploadGroupImg( @Part MultipartBody.Part  groupId, @Part MultipartBody.Part body);

 val  id= MultipartBody.Part.createFormData("groupId", groupId)
 requestData(observable().uploadGroupImg(id, RequestBodyUtil.getPartBody("file", url))
  /**
     * retrofit @part
     * 图片或文件
     * @param param 与服务器匹配的请求参数名
     * @param path  文件路径
     */
    public static MultipartBody.Part getPartBody(String param, String path) {
        if (TextUtils.isEmpty(path)) {
            return MultipartBody.Part.createFormData(param, "");
        }
        File file = new File(path);
        RequestBody photoBody = RequestBody.create(MediaType.parse("multipart/form-data"), file);
        String encode;
        try {
            encode = URLEncoder.encode(file.getName(), "UTF-8");
        } catch (UnsupportedEncodingException e) {
            encode = file.getName();
        }
        return MultipartBody.Part.createFormData(param, encode, photoBody);
    }

方法2

  Observable<BaseInfo<String>> uploadGroupImg(@PartMap Map<String,String> map, @Part MultipartBody.Part body);

val map= HashMap<String, String>()
        map["groupId"] = groupId
requestData(observable().uploadGroupImg(map, RequestBodyUtil.getPartBody("file", url)),

 @Part("groupId") RequestBody
  public static RequestBody getTextBody(String body) {
        return RequestBody.create(MediaType.parse("text/plain"), body);
    }

相关文章

网友评论

      本文标题:Retrofit 上传文件带参数

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