1. 발생 상황

Retrofit2를 사용하여 Rest통신을 하려고 할 때, 웹 서버에 접근을 못 한다고 이와 같은 에러가 발생했다!

Call error: CLEARTEXT communication to xxx.xxx.xx not permitted by network security policy

 

 

2. 발생 원인

사용하고자 하는 API주소, 이미지주소 등 네트워크 경로가 https가 아닌 http로 되어 있기 때문에 발생한 문제라고 한다.

 

 

3. 해결 방법

1. 가장 쉬운 방법은 사용하는 네트워크 주소를 https로 변경하는 것이다.

 

2. 하지만, 사용하고자 하는 서버가 https로 구성되어 있지 않은 경우에는 아래 두 가지 방법 중 하나를 적용하면 된다.

 

2-1. network_security_config.xml 파일 생성 후, AndroidManifast.xml 에 등록하기 

 

res/xml 디렉터리에 network_security_config.xml 파일을 만들어 준다.

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <domain-config cleartextTrafficPermitted="true">
        <domain includeSubdomains="true">xxx.xxx.xxx</domain>
    </domain-config>
</network-security-config>

그리고 Manifast에 해당 파일을 config 파일로 지정한다.

<application    
		...    
    android:networkSecurityConfig="@xml/network_security_config">

 

 

2-2. AndroidManifast.xmlusesCleartextTraffic 속성 설정

 

<application    
		...    
    android:usesCleartextTraffic="true">

 

 


참고자료

https://gun0912.tistory.com/80

+ Recent posts