1. 파일을 보내는 방법
2. 텍스트로 보내기 위한 방법
public class AddActivity {
private File photoFile;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_add);
btnSave.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (photoFile == null) {
Toast.makeText(AddActivity.this, "사진은 필수입니다.", Toast.LENGTH_SHORT).show();
return;
}
String content = editContent.getText().toString().trim();
if (content.isEmpty()) {
Toast.makeText(AddActivity.this, "내용을 입력하세요.", Toast.LENGTH_SHORT).show();
return;
}
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);
// 멀티파트로 텍스트를 보내는 경우, 파라미터 만드는 방법
RequestBody contentBody = RequestBody.create(content, MediaType.parse("text/plain"));
// 헤더에 들어갈 억세스토큰 가져온다.
SharedPreferences sp = getApplication().getSharedPreferences(Config.PREFERENCES_NAME, MODE_PRIVATE);
String accessToken = sp.getString("accessToken", "");
Call<PostRes> call = api.addPosting("Bearer " + accessToken,
photo, contentBody);
showProgress("포스팅 업로드중");
call.enqueue(new Callback<PostRes>() {
@Override
public void onResponse(Call<PostRes> call, Response<PostRes> response) {
dismissProgress();
Toast.makeText(AddActivity.this, "업로드가 완료되었습니다.", Toast.LENGTH_SHORT).show();
finish();
}
@Override
public void onFailure(Call<PostRes> call, Throwable t) {
dismissProgress();
}
});
}
});
}| Android - Bottom Navigation (0) | 2022.07.27 |
|---|---|
| Android - 친구 포스팅 가져오기 (0) | 2022.07.26 |
| Android - retrofit2의 POST 사용하는 방법 (0) | 2022.07.21 |
| Android - Retrofit2 라이브러리 사용을 위한 설정 방법 (0) | 2022.07.21 |
| Android - 카메라 / 앨범 사용하는 방법 (0) | 2022.07.21 |