왕현성
코딩발자취
왕현성
전체 방문자
오늘
어제
  • 코딩 (277)
    • Python (71)
    • Java (16)
    • MySQL (34)
    • 인공지능 (48)
      • 머신러닝 (16)
      • 딥러닝 (32)
    • 영상처리 (4)
    • Rest API (21)
    • Android Studio (25)
    • streamlit (13)
    • DevOps (22)
      • AWS (9)
      • PuTTY (5)
      • Git (4)
      • Serverless (2)
      • Docker (2)
    • IT 기술 용어 (6)
    • 디버깅 ( 오류 해결 과정 ) (17)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 영상처리
  • 영상처리역사
  • yolov8
  • 컴퓨터비전
  • labelme UnocodeDecodeError
  • OpenCV
  • TensorFlow
  • encoding='utf-8'
  • 영상기술
  • 비지도학습
  • PIL
  • pytorch
  • unsupervised
  • numpy
  • ComputerVision
  • tune()
  • PYTHON
  • alibi-detection
  • 의료이미징
  • alibidetect
  • 기상탐사
  • UnboundLocalError
  • 딥러닝
  • get_long_description
  • imageprocessing
  • matplotlib
  • maskimage
  • labelme
  • ckpt_file
  • pip install labelme

최근 댓글

최근 글

티스토리

250x250
hELLO · Designed By 정상우.
왕현성

코딩발자취

Android Studio

Android - Retrofit Multipart 사용 방법, 파일 업로드하기

2023. 2. 14. 17:39
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"))

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
    'Android Studio' 카테고리의 다른 글
    • Android - RecyclerView, Fragment의 클릭 이벤트 처리하기
    • Android - Fragment 탭바를 이용하여 각각의 다른 화면으로 전환하기
    • Android - 카메라와 사진첩을 이용하여 이미지 뷰에 사진 출력하기
    • Android - 네트워크 통신 Retrofit2 Library
    왕현성
    왕현성
    AI 머신비전 학습일지

    티스토리툴바