안드로이드 개발 팁 블로그

retrofit2 upload file 본문

Android Tip

retrofit2 upload file

tiii 2016. 3. 9. 18:49
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

/**

 * 파일 업로드
* @return
*/
@Multipart
@POST("app/item/upload")
Observable<JsonObject> FileUpload(@PartMap Map<String, RequestBody> params);


RxAndroid를 사용하기 때문에 리턴 값이 Observable 이지만 Call 객체와 다르지 않습니다.


public static RequestBody toRequestBody (String value) {
RequestBody body = RequestBody.create(MediaType.parse("text/plain"), value);
return body ;
}


Map<String, RequestBody> map = new HashMap<>();
map.put("node", DownloadUtils.toRequestBody("1")); //file과 같이 보낼 일반적인 text 파라메타
map.put("uploadkey", DownloadUtils.toRequestBody("Filedata")); //file과 같이 보낼 일반적인 text 파라메타

File file = new File(SaveDirPath);
RequestBody fileBody = RequestBody.create(MediaType.parse("text/plain"), file); //파일에 맞는 mime 값을 설정 합니다.
map.put("Filedata\"; filename=\"boxlist.display", fileBody); //file 이름은 file객체에서 가지고 와도 됩니다.

RestfulAdapter.getBOXInterface().FileUpload(map); 


Comments