neu*_*t47 2 android file-upload retrofit retrofit2
我试着这几天,我真的做了一切..这是请求在Postman中的样子:

我确信,所有GET参数都写得正确.我想,我如何发送文件上传的问题.
Map<String, RequestBody> map = new HashMap<>();
File file = new File("/storage/emulated/0/ConstructSecure/d1940b05-76d1-4d98-b4b4-b04b8247c8cb.png");
RequestBody requestBody = RequestBody.create(MediaType.parse("image/png"), file);
String fileName = file.getName();
map.put("attachment\"; filename=\"" + fileName + "\"", requestBody);
//GET parameters
Map<String, String> params = new HashMap<String, String>();
params.put("inspectionUUID", inspectionUUID);
params.put("noteUUID", noteUUID);
params.put("attachmentUUID", attachmentUUID);
params.put("noteType", noteType);
params.put("modifiedTime", modifiedTime);
Call<ResponseBody> call = service.upload(access_token,params,map);
call.enqueue()....
Run Code Online (Sandbox Code Playgroud)
接口:
@Multipart
@POST("api/MediaFiles/AddMediaFile")
Call<ResponseBody> upload(
@Header("Authorization") String authorization,
/* GET params */ @QueryMap Map<String, String> params,
@PartMap Map<String, RequestBody> map
);
Run Code Online (Sandbox Code Playgroud)
谁能帮助我?
我花了很多时间进行搜索,如何将文件作为字节流发送,因为Web中的所有答案都通过RequestBody解释上传,但它不适用于我的情况.所以,这是解决方案:
InputStream in = new FileInputStream(file);
byte[] buf = new byte[in.available()];
while (in.read(buf) != -1) ;
RequestBody requestBodyByte = RequestBody
.create(MediaType.parse("application/octet-stream"), buf);
String content_disposition = "attachment; filename=\"" + fileName + "\"";
//GET parameters
Map<String, String> params = new HashMap<String, String>();
params.put("inspectionUUID", inspectionUUID);
params.put("noteUUID", noteUUID);
params.put("attachmentUUID", attachmentUUID);
params.put("noteType", noteType);
params.put("modifiedTime", modifiedTime);
Call<ResponseBody> call = service.upload(access_token, content_disposition, requestBodyByte, params);
Run Code Online (Sandbox Code Playgroud)
接口:
@POST("api/MediaFiles/AddMediaFile")
Call<ResponseBody> upload(
@Header("Authorization") String authorization,@Header("Content-Disposition") String content_disposition, @Body RequestBody photo,
/* GET params */ @QueryMap Map<String, String> params
);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2060 次 |
| 最近记录: |