728x90
1. Mutipart 사용 방법
- MultipartBody.part : 데이터를 여러개로 쪼개어 전송하는 것
- createFormData : 주로 파일 전송을 위해 사용
- POST에서만 사용 가능
- RequestBody : GET을 제외한 메소드는 바디를 사용하기 때문에 요청을 위한 Body 설정
- 파라미터(보낼 데이터, 데이터의 파일 타입) : 데이터가 텍스트인지, 이미지인지, xml 파일인지 등등을 구분
- 예시) RequestBody fileBody = RequestBody.create(photoFile, MediaType.parse("image/jpeg"))
- photoFile은 이미지 파일, MediaType.parse는 이미지 파일의 확장자를 의미
- 텍스트로만 구성된 경우 text/plain 을 사용
- 예시) RequestBody contentBody = RequestBody.create(content, MediaType.parse("text/plain"))
- 파라미터(보낼 데이터, 데이터의 파일 타입) : 데이터가 텍스트인지, 이미지인지, xml 파일인지 등등을 구분
2. Multipart로 API 요청하기
2.1. POST
- 파라미터에 바디(Body)를 사용
- 주의! 요청과 응답도 모두 바디로 사용하므로 혼동하면 안된다!!!
(내가 그랬음)
- 주의! 요청과 응답도 모두 바디로 사용하므로 혼동하면 안된다!!!
- 사용자가 서버에 데이터를 추가하거나 정보를 입력 할 때 사용 (회원가입, 글쓰기 등)
- 예시 API서버에서의 GET 메소드 필수 파라미터
- Header : 인증키(Authorization)
- Body : photo(이미지 파일), content(내용)
// 포스팅 생성 API
@Multipart
@POST("/posting")
Call<Res> addPosting(@Header("Authorization") String token, @Part MultipartBody.Part photo,
@Part("content")RequestBody content);
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// 멀티파트로 파일을 보내는 경우, 파일 파라미터를 만든다.
RequestBody fileBody = RequestBody.create(photoFile, MediaType.parse("image/jpg"));
MultipartBody.Part photo = MultipartBody.Part.createFormData("photo", photoFile.getName(), fileBody);
// 멀티파트로 텍스트를 보내는 경우, 텍스트 파라미터 만든다.
RequestBody contentBody = RequestBody.create(content, MediaType.parse("text/plain"));
'Android Studio' 카테고리의 다른 글
Android - RecyclerView, Fragment의 클릭 이벤트 처리하기 (0) | 2023.02.15 |
---|---|
Android - Fragment 탭바를 이용하여 각각의 다른 화면으로 전환하기 (0) | 2023.02.15 |
Android - 카메라와 사진첩을 이용하여 이미지 뷰에 사진 출력하기 (0) | 2023.02.13 |
Android - 네트워크 통신 Retrofit2 Library (0) | 2023.02.09 |
Android - ProgressDialog (0) | 2023.02.09 |