Android开发使用retrofit上传文件和多个参数一起时失败问题
2017-07-28 12:16
1156 查看
最近使用retrofit上传文件和参数时发现上传直接失败,于是查询各种资料发现是因为retrofit上传文件时底层限制问题,可是换作另外方法上传就可以了,记录下;
一,服务器让传递的参数和内容
二,retrofit接口内容
@Multipart @POST Call<WebResponseBean> uploadFile(@Url String url,@Part MultipartBody.Part file, @PartMap Map<String, RequestBody> params);
三,代码中调用封装图片上传工具
public class ImageUploadUtil { private ImageUploadUtil(){}; public static void loadFile(final Context context,String url, File file, Map map){ ApiService apiService = new RetrofitHttpUtil(context).getApiService(); RequestBody requestFile = RequestBody.create(MediaType.parse("multipart/form-data"), file); MultipartBody.Part body = MultipartBody.Part.createFormData("upload", file.getName(), requestFile); apiService.uploadFile(url,body,map) .enqueue(new Callback<WebResponseBean>() { @Override public void onResponse(Call<WebResponseBean> call, Response<WebResponseBean> response) { String msg = response.body().msg; ToastUtil.show(context,msg); } @Override public void onFailure(Call<WebResponseBean&g 4000 t; call, Throwable t) { } }); } }
4,上传参数处理成retrofit底层需要的 “text/plain”
private HashMap<String, RequestBody> setParams(String tag) { HashMap<String, RequestBody> map = new HashMap<>(); map.put("uid", toRequestBody(uid)); map.put("act", toRequestBody("UploadImage")); map.put("tag", toRequestBody(tag)); return map; } private RequestBody toRequestBody(String value) { RequestBody requestBody = RequestBody.create(MediaType.parse("text/plain"), value); return requestBody; }
相关文章推荐
- Android应用开发之使用Socket进行大文件断点上传续传
- Android开发笔记(一百一十)使用http框架上传文件
- 解决Android开发中,ActiveAndroid和Gson同时使用,对象序列化失败的问题
- Android Retrofit 实现文字(参数)和多张图片一起上传
- gitlab使用过程中遇到大文件上传或下载失败的问题,总结一下
- Android应用开发之使用Socket进行大文件断点上传续传
- 使用UpdatePanel时FileUpload失效的问题!【FileUpload上传文件失败】
- 使用Ajax进行文件与其他参数的上传功能(java开发)
- secureCRT使用rz命令上传文件失败问题--一直中断开发机
- 使用UpdatePanel时FileUpload失效的问题!【FileUpload上传文件失败】
- Android Http协议笔记(使用HttpURLConnection)文件上传+参数
- 【Android开发那点破事】解决Andriod使用HttpURLConnection 失败问题
- android使用HttpURLConnection实现带参数文件上传
- retrofit2上传文件参数问题
- Android应用开发之使用Socket进行大文件断点上传续传
- android-async-http使用一个参数上传多个文件
- 解决 在Android开发上使用KSOAP2上传大图片到服务器经常报错的问题
- Android应用开发之使用Socket进行大文件断点上传续传
- Android应用开发之使用Socket进行大文件断点上传续传
- 解决Android开发中,ActiveAndroid和Gson同时使用,对象序列化失败的问题