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.xml
의 usesCleartextTraffic
속성 설정
<application
...
android:usesCleartextTraffic="true">
참고자료
'🚫 Trouble Shooting' 카테고리의 다른 글
[Git] could not read Username for 'https://github.com': Device not configured (0) | 2022.05.30 |
---|---|
[Android] Use jsonreader.setlenient(true) to accept malformed json at path $[0].null (0) | 2022.05.30 |