ERR_CLEARTEXT_NOT_PERMITTED 웹뷰에러 해결하기

ERR_CLEARTEXT_NOT_PERMITTED 웹뷰에러

지인의 부탁으로 간단한거 하나 틀 만들어주는데 별 생각없이 만들어서 줬더니 안나온다고 함.
내 폰에선 잘나오던데 라고 해줬는데 스샷 보니 저렇게 나옴.
(해당 URL은 개발중이라 비공개고 대신 다음 웹툰 주소를 사용함)

ERR_CLEARTEXT_NOT_PERMITTED

검색해보니 안드로이드9 (Pie API28) 부터 http 처럼 암호화 하지 않은 URL 접근은 막혔다고 함.
내 폰은 8.1이었고 지인은 9 였으니 안됬던것이였음.
그래서 검색해보고 방법을 여기 정리해둠.

방법1.

android:usesCleartextTraffic="true"

AndroidManifest.xml 파일에 application 속성으로 위 내용을 넣어준다.
이 경우에는 모든 URL이 다 허용되는거라 딱히 추천을 하진 않는다. 보안적으로 문제가 생길 가능성이 있으니깐.

방법2.

android:networkSecurityConfig="@xml/network_security_config"

AndroidManifest.xml 파일에 application 속성으로 위 내용을 넣어주고 res폴더에 xml 폴더를 만든뒤 안에 network_security_config.xml 파일을 만들고 아래 내용을 넣어준다.

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <domain-config cleartextTrafficPermitted="true">
        <domain includeSubdomains="true">도메인주소</domain>
		<domain includeSubdomains="true">linsoo.co.kr</domain>
    </domain-config>
</network-security-config>

이럴경우 특정 도메인에 한해서 https가 아니여도 접속할 수 있다.
테스트 서버처럼 임시로 만드는 서버일 경우 https를 안쓰는 경우가 있으니 이럴때 사용하면 될듯 싶다.

개인적으론 방법2를 더 추천한다.

 

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<!--    http로 접속 허용할 URL-->
    <domain-config cleartextTrafficPermitted="true">
        <domain includeSubdomains="true">media.daum.net</domain>
    </domain-config>

<!--아래는 반드시 https로 접속해야 할 주소-->
    <domain-config cleartextTrafficPermitted="false">
        <domain includeSubdomains="true">cartoon.media.daum.net</domain>
    </domain-config>
</network-security-config>

이 값을 true냐 false로 하느냐로 보안접속을 반드시 사용해야 할 URL을 지정할 수 있다.

참고 : https://developer.android.com/training/articles/security-config#CleartextTrafficPermitted

크리에이티브 커먼즈 라이선스Linsoo의 저작물인 이 저작물은(는)크리에이티브 커먼즈 저작자표시-동일조건변경허락 4.0 국제 라이선스에 따라 이용할 수 있습니다.

댓글 남기기

이메일은 공개되지 않습니다.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.