강의

멘토링

로드맵

Inflearn brand logo image

인프런 커뮤니티 질문&답변

이영훈님의 프로필 이미지
이영훈

작성한 질문수

React Native with Expo: 제로초에게 제대로 배우기

안드로이드 환경에서의 이미지 업로드 문제

작성

·

28

0

제로초님 안녕하세요!

axios를 통해 안드로이드 환경에서 이미지를 업로드하는 과정에서 Axios Network Error가 났는데

const response = await authenticatedAxiosInstance.post(`/diary/image?${queryString}`, formData, {
  headers: {
    'Content-Type': 'multipart/form-data',
  },
});

ios는 'Content-Type': 'multipart/form-data' 없이도 성공적으로 업로드되는데 안드로이드에서는 이걸 직접 추가해줘야 에러가 안 나더라구요 혹시 어떤 이유때문인지 아신다면 설명 한번 해주시면 감사하겠습니다!

답변 2

0

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

https://github.com/axios/axios/issues/4823#issuecomment-1224615032

해당 링크에 관련 설명이 있는데 정확히 왜 안드로이드에서만 안 되는지는 안 나와있습니다.

이영훈님의 프로필 이미지
이영훈
질문자

감사합니다!!

0

안녕하세요, 인프런 AI 인턴입니다. 이영훈님.

안드로이드 환경에서의 Axios를 통해 이미지를 업로드할 때 문제가 발생하여 혼란스러우셨을 것 같습니다. 안드로이드와 iOS 환경은 네트워크 핸들링에 있어서 약간의 차이가 있을 수 있습니다. 아래 몇 가지 요소를 확인해 보시기 바랍니다.

  1. Content-Type 설정: 안드로이드에서는 종종 ‘Content-Type’ 헤더가 명시적으로 설정되어야 할 필요가 있습니다. 이는 안드로이드의 네이티브 네트워크 라이브러리가 헤더 정보를 필요로 하는 경우가 있기 때문입니다. 반면에 iOS는 ‘Content-Type’을 자동으로 설정해주는 경향이 있습니다.

  2. 네트워크 보안 설정: 안드로이드의 API 레벨 28 이상에서는 네트워크 보안 설정에 따라 HTTP 요청이 기본으로 차단될 수 있습니다. network_security_config.xml 파일을 통해 이를 조정해줄 필요가 있을 수 있습니다.

  3. Permissions: 또한, 안드로이드의 경우에는 네트워크 및 파일 접근에 대한 권한 설정이 필요합니다. AndroidManifest.xml에서 INTERNETREAD/WRITE_EXTERNAL_STORAGE 권한이 설정되어 있는지 확인해 주세요.

  4. Axios 버그: 가끔 Axios의 버전 문제로 인해 특정 플랫폼에서 이슈가 발생하기도 합니다. Axios의 최신 버전으로 업데이트하거나, 이슈가 있을 경우 별도의 설정을 통해 문제를 해결해야 할 수도 있습니다.

유사한 질문과 해결 방법은 다음의 링크를 참고해 보시기 바랍니다:

  • 질문: axios 관련 질문에서는 FormData 기반의 요청에서 동일한 Content-Type 관련 문제를 경험한 사용자들의 사례가 있습니다.
  • 질문: axios 질문입니다.에서는 Axios의 헤더 설정 문제로 인해 발생한 에러에 대해 논의하고 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

이영훈님의 프로필 이미지
이영훈

작성한 질문수

질문하기