Retrofit+rxjava & & okhttp 파일 업로드
1508 단어 angroid
File f1 = new File(“/storage/emulated/0/Pictures/c.png”);
RequestBody requestFile = RequestBody.create(MediaType.parse(“multipart/form-data”), f1); //MultipartBody.Part와 백엔드에서 Key를 약속합니다. 여기 있는 partName은 이미지 MultipartBody를 사용합니다.Part body = MultipartBody.Part.createFormData(“image”, f1.getName(), requestFile); RequestBody uidBody = RequestBody.create(MediaType.parse(“text/plain”), uid);
Api 키 코드
@POST(UPLOAD_PATH) @Multipart Flowable upLoad(@Part(“uid”) RequestBody uid, @Part MultipartBody.Part file);
2.okhttp
FormBody paramsBody=new FormBody.Builder() .add ("id", "id (매개 변수)").build();
MediaType type=MediaType.parse(“application/octet-stream”);//”text/xml;charset=utf-8"File file=new File(파일 경로);RequestBody fileBody=RequestBody.create(type,file);
RequestBody multipartBody = new MultipartBody.Builder() .setType(MultipartBody.ALTERNATIVE)
//
.addPart(Headers.of(
"Content-Disposition",
"form-data; name=\"params\"")
,paramsBody)
.addPart(Headers.of(
"Content-Disposition",
"form-data; name=\"file\"; filename=\"plans.xml\"")
,fileBody)
Request request=new Request.Builder().url(url) .addHeader(“User-Agent”,”android”) .header(“Content-Type”,”text/html; charset=utf-8;”) .post(multipartBody)//매개 변수, 파일 또는 혼합을 전송하고 변경하면 요청체가 됩니다.build();