Android HTTP 통신

오리·2024년 10월 17일

원인

Android 9 이상부터 HTTPS로만 통신을 허용하는 네트워크 보안 정책이 적용되기 때문에 HTTP 요청시 오류가 난다.

failed with message: CLEARTEXT communication to test.com not permitted by network security policy

해결 방법

  1. HTTPS 사용

    서버 도메인에 HTTPS를 설정하고 HTTPS로 통신

  2. 앱에서 HTTP 통신 허용

    • network_security_config.xml 파일을 만들어 앱에서 HTTP 통신을 허용
    • res/xml 디렉터리에 network_security_config.xml 파일 생성
      <network-security-config>
          <domain-config cleartextTrafficPermitted="true">
              <domain includeSubdomains="true">test.com</domain>
          </domain-config>
      </network-security-config>
      
    • AndroidManifest.xml 에 설정 참조
      <application
          android:networkSecurityConfig="@xml/network_security_config"
          ... >
      

뭐가 더 좋을까?

보안미래 호환성 측면에서 HTTPS로 통신하는 것이 더 좋음

0개의 댓글