Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |
Tags
- numpy
- elbow method
- DataAccess
- wcss
- data
- insert()
- dendrogram
- Machine Learning
- list
- append()
- 최댓값
- 덴드로그램
- hierarchical_clustering
- 반복문
- IN
- Python
- 최솟값
- DataFrame
- len()
- matplotlib
- del
- Dictionary
- analizer
- pandas
- function
- string
- nan
- sklearn
- 분류 결과표
- count()
Archives
- Today
- Total
개발공부
[Android] Retrofit2 라이브러리 form-data 형식 파일, 텍스트 전송하기(Multipart form 이용) 본문
Android
[Android] Retrofit2 라이브러리 form-data 형식 파일, 텍스트 전송하기(Multipart form 이용)
mscha 2022. 7. 26. 10:23아래와 같이 Heder로는 Authorization.
Body로는 form-data 형식의 key - value로 되어있는
File과 Text를 옮기는 방법을 알아보겠습니다.



결과

예제로는 이미지와 텍스트를 올리는 것으로 하겠습니다.
API 인터페이스
PostingApi
// 파일을 알아서 쪼개서 보내줌 @Multipart
@Multipart
@POST("/posting")
Call<PostingRes> addPosting(@Header("Authorization") String AccessToken,
@Part MultipartBody.Part photo,
@Part("content")RequestBody content);
PostingRes
public class PostingRes {
private String result;
public String getResult() {
return result;
}
public void setResult(String result) {
this.result = result;
}
}
호출 부분
AddActivity
Retrofit retrofit = NetworkClient.getRetrofitClient(AddActivity.this);
PostingApi api = retrofit.create(PostingApi.class);
// 멀티파트로 파일을 보내는 경우, 파일 파라미터 만드는 방법
RequestBody fileBody = RequestBody.create(photoFile, MediaType.parse("image/*"));
// 키값, 파일명, 실제 파일
MultipartBody.Part photo = MultipartBody.Part.createFormData("photo",
photoFile.getName(), fileBody);
// 멀티파트로 form-data형식 text 보내는 경우
RequestBody contentBody = RequestBody.create("보낼 텍스트", MediaType.parse("text/plain"));
// 헤더에 들어갈 억세스토큰 가져온다.
SharedPreferences sp = getApplication()
.getSharedPreferences(Config.PREFERENCES_NAME, MODE_PRIVATE);
String accessToken = sp.getString("accessToken", "");
Call<PostingRes> call = api.addPosting("Bearer " + accessToken, photo, contentBody);
call.enqueue(new Callback<PostingRes>() {
@Override
public void onResponse(Call<PostingRes> call, Response<PostingRes> response) {
if(response.isSuccessful()){
Toast.makeText(AddActivity.this, "포스팅 완료", Toast.LENGTH_SHORT).show();
finish();
}else {
Toast.makeText(AddActivity.this, "에러발생 : " + response.code(),
Toast.LENGTH_SHORT).show();
}
}
@Override
public void onFailure(Call<PostingRes> call, Throwable t) {
// 네트워크 자체 문제로 실패
Toast.makeText(AddActivity.this, "네트워크에 문제가 있습니다.", Toast.LENGTH_SHORT).show();
}
});
이때 photoFile은 아래 게시글의 과정을 통해 얻어온 File형식의 변수입니다.
[Android] 카메라 / 앨범 처리
build.gradle 아래 코드를 추가합니다. dependencies { implementation 'commons-io:commons-io:2.4' } res/xml 경로 fileprovider.xml 파일을 생성합니다. fileprovider.xml <?xml version="1.0" encoding="utf-..
mscha.tistory.com
'Android' 카테고리의 다른 글
| [Firebase] Realtime DataBase를 사용하기 위한 환경 설정 (0) | 2022.09.16 |
|---|---|
| [Android] GPS 위도, 경도 정보 받기, 권한 설정 (0) | 2022.07.29 |
| [Android] Progress Dialog 프로그레스 다이얼로그 생성/제거 (0) | 2022.07.25 |
| [Android] Retrofit2 라이브러리를 이용한 POST로 API 호출하여 처리하는 방법 (0) | 2022.07.21 |
| [Android] Retrofit2 라이브러리 사용을 위한 설정 방법 (0) | 2022.07.21 |