下面以一个例子来讲解在项目中如何使用OKHttp来对本地图片做个最简单的上传功能,基本上无封装,只需要简单调用便可(对于OKHttp的引入不再单独做介绍)。
1:构建上传图片附带的参数(params)
Map<String, Object> reqData = new HashMap<>(); RequestBody requestFile = RequestBody.create(MediaType.parse("multipart/form-data"), file); MultipartBody.Part filePart = MultipartBody.Part.createFormData("file", file.getName(), requestFile);
其中reqData中是需要传入的参数,如接口请求token,时间戳,版本号等。然后构建RequestBody,表示上传类型,这里以form表单形式提交,当然也可以以Json格式提交,只要和后台约定好便可。然后构建filePart,有单个图片文件和多个文件图片选项,多个文件也是封装在MultipartBody.Part中的,这里以单个文件为例。
2:第二步,把参数与图片数据封装到心情求体里。这里ReqData中便是传递需要的参数,这里对传递过来的参数重新取出以键值对方式构建。
MediaType MEDIA_TYPE_PNG = MediaType.parse("multipart/form-data"); MultipartBody multipartBody = new MultipartBody.Builder() .setType(MEDIA_TYPE_PNG) .addFormDataPart("token&